windows打印GDI+出现锯齿和虚化问题的解决方法

Posted zhangredli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了windows打印GDI+出现锯齿和虚化问题的解决方法相关的知识,希望对你有一定的参考价值。

在使用GDI+绘制并通过windows打印的过程中,如果使用的是针式打印机,经常出现打印出来的图像尤其是条码会出现锯齿的情况

技术图片

 

 

 然而只将图片保存下来查看却发现并没有锯齿

最初我以为是图像过小导致的,但是即便把图像进行放大,仍然无法解决问题,最终通过查阅资料发现在打印事件的Graphics绘制图像时

不能在图像的外层在进行一次绘制,否则就会出现锯齿

像如下代码就会出现锯齿

Image img = Barcode.Build(newText, 300, 300, Setting.ImgType);
                                //在二维码图片下追加二维码字符串 三个一截断便于车站退票识别条形码数字
Bitmap _ZoomBitmap = new Bitmap(Setting.Width, Setting.Height);
Graphics _Graphics = Graphics.FromImage(_ZoomBitmap);
_Graphics.DrawImage(img, 0, 0, _ZoomBitmap.Width, _ZoomBitmap.Height);
 _Graphics.Dispose();
Image newimag = DrawText(_ZoomBitmap, barcode, Setting.TextFont, Color.Black, 15);
g.DrawImage(newimag, Setting.Location.X, Setting.Location.Y, Setting.Width, Setting.Height);

像这种,在img外面又绘制了一层newimag,最终在打印事件的Graphics在绘制newimag就会出现锯齿

正确的做法如下

Image img = Barcode.Build(newText, 300, 300, Setting.ImgType);
g.DrawImage(img, Setting.Location.X, Setting.Location.Y, Setting.Width, Setting.Height);

 

以上是关于windows打印GDI+出现锯齿和虚化问题的解决方法的主要内容,如果未能解决你的问题,请参考以下文章

为啥用 gdi 有锯齿图形?

GDI+ Graphics Obj - 使用 GDI 直接绘制到 DC 时消除锯齿丢失

GDI

Unity 3D 游戏通用系统设置页面,自定义按键设置,背景虚化,图像设置,亮度对比度饱和度音量调节,分辨率窗口化,帧率垂直同步,抗锯齿,阴影质量,纹理质量设置

为啥电脑任务栏出现一个QQ头像和GDI+Window?

GDI+与GDI的区别简介