使用程序化文本缩小打印质量图像的文件大小,而不会降低打印质量

时间:2017-07-24 18:34:34

标签: c# image-processing

我需要加载图像文件,在其上设置一些文本,然后使用下面的代码将其保存为图像以进行打印。

private static void A4SizeDpi600() {
    const int dotsPerInch = 600; // define the quality in DPI
    const double widthInInch = 10; // width of the bitmap in INCH
    const double heightInInch = 8; // height of the bitmap in INCH

    using (Bitmap bitmap = new Bitmap(Image.FromFile(imageFilePath), (int)(widthInInch * dotsPerInch), (int)(heightInInch * dotsPerInch))) //10*600=6000, 8*600=4800
    {
        bitmap.SetResolution(dotsPerInch, dotsPerInch);

        using (Graphics graphics = Graphics.FromImage(bitmap))
        {
            graphics.DrawString("Some text here", new Font("Times New Roman", 0.3f, FontStyle.Regular, GraphicsUnit.Inch), Brushes.Black, 1400f, 2100f);
            //more text here

            // Save the bitmap
            bitmap.Save(imageBaseFilePath+ "CertDpi600.png");//file type can be any               
        }
    }
}

问题是生成的图像太大(10MB),输入文件只有600K,大小超过10倍。我想知道是否有办法减少文件大小而不会失去打印质量。

生成的图像文件类型可以是任何类型(pdf,png,bmp,jpeg),只要它具有良好的打印质量和较小的文件大小。

我也对输入文件类型(任何图像文件类型或pdf)开放,只要它产生上述相同的要求。

0 个答案:

没有答案