ImagePixelFormat

ImagePixelFormat enumeration

指定文档页面生成图像的像素格式。

public enum ImagePixelFormat

价值观

姓名 价值 描述
Format16BppRgb555 0 每像素 16 位,RGB.
Format16BppRgb565 1 每像素 16 位,RGB.
Format16BppArgb1555 2 每像素 16 位,ARGB.
Format24BppRgb 3 每像素 24 位,RGB.
Format32BppRgb 4 每像素 32 位,RGB.
Format32BppArgb 5 每像素 32 位,ARGB.
Format32BppPArgb 6 每像素 32 位,ARGB,预乘 alpha。
Format48BppRgb 7 每像素 48 位,RGB.
Format64BppArgb 8 每像素 64 位,ARGB.
Format64BppPArgb 9 每像素 64 位,ARGB,预乘 alpha。
Format1bppIndexed 10 每像素 1 位,已索引。

例子

演示如何选择将文档呈现为图像的每像素比特率。

Document doc = new Document();
            DocumentBuilder builder = new DocumentBuilder(doc);

            builder.ParagraphFormat.Style = doc.Styles["Heading 1"];
            builder.Writeln("Hello world!");
            builder.InsertImage(ImageDir + "Logo.jpg");

            Assert.That(20000, Is.LessThan(new FileInfo(ImageDir + "Logo.jpg").Length));

            // 当我们将文档保存为图片时,我们可以传递一个 SaveOptions 对象到
            // 为保存操作将生成的图像选择像素格式。
            // 不同的每像素比特率会影响生成图像的质量和文件大小。
            ImageSaveOptions imageSaveOptions = new ImageSaveOptions(SaveFormat.Png);
            imageSaveOptions.PixelFormat = imagePixelFormat;

            // 我们可以克隆 ImageSaveOptions 实例。
            Assert.AreNotEqual(imageSaveOptions, imageSaveOptions.Clone());

            doc.Save(ArtifactsDir + "ImageSaveOptions.PixelFormat.png", imageSaveOptions);

#if NET48 || JAVA
            switch (imagePixelFormat)
            {
                case ImagePixelFormat.Format1bppIndexed:
                    Assert.That(10000, Is.AtLeast(new FileInfo(ArtifactsDir + "ImageSaveOptions.PixelFormat.png").Length));
                    break;
                case ImagePixelFormat.Format16BppRgb555:
                    Assert.That(80000, Is.LessThan(new FileInfo(ArtifactsDir + "ImageSaveOptions.PixelFormat.png").Length));
                    break;
                case ImagePixelFormat.Format24BppRgb:
                    Assert.That(125000, Is.LessThan(new FileInfo(ArtifactsDir + "ImageSaveOptions.PixelFormat.png").Length));
                    break;
                case ImagePixelFormat.Format32BppRgb:
                    Assert.That(150000, Is.LessThan(new FileInfo(ArtifactsDir + "ImageSaveOptions.PixelFormat.png").Length));
                    break;
                case ImagePixelFormat.Format48BppRgb:
                    Assert.That(200000, Is.LessThan(new FileInfo(ArtifactsDir + "ImageSaveOptions.PixelFormat.png").Length));
                    break;
            }
#elif NET5_0_OR_GREATER
            switch (imagePixelFormat)
            {
                case ImagePixelFormat.Format1bppIndexed:
                    Assert.That(10000, Is.AtLeast(new FileInfo(ArtifactsDir + "ImageSaveOptions.PixelFormat.png").Length));
                    break;
                case ImagePixelFormat.Format24BppRgb:
                    Assert.That(70000, Is.LessThan(new FileInfo(ArtifactsDir + "ImageSaveOptions.PixelFormat.png").Length));
                    break;
                case ImagePixelFormat.Format16BppRgb555:
                case ImagePixelFormat.Format32BppRgb:
                case ImagePixelFormat.Format48BppRgb:
                    Assert.That(125000, Is.LessThan(new FileInfo(ArtifactsDir + "ImageSaveOptions.PixelFormat.png").Length));
                    break;
            }
#endif

也可以看看