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+ Graphics Obj - 使用 GDI 直接绘制到 DC 时消除锯齿丢失
Unity 3D 游戏通用系统设置页面,自定义按键设置,背景虚化,图像设置,亮度对比度饱和度音量调节,分辨率窗口化,帧率垂直同步,抗锯齿,阴影质量,纹理质量设置