在项目中需要直接绘制EMF矢量图到位图中,但是我通过Graphics绘制矢量图到位图中缺严重失真,线条和文字加粗了,然而使用控件的Graphics直接绘制矢量图到界面上去没有失真,不知道何故,请教大家。
绘制到位图代码:
Image img = Image.FromFile(@"D:\矢量图.emf", true);
Bitmap bmp = new Bitmap(img.Width, img.Height);
Graphics g = Graphics.FromImage(bmp);
g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half;
g.DrawImage(img, new Rectangle(0, 0, img.Width, img.Height), new Rectangle(0, 0,img.Width,
img.Height), GraphicsUnit.Pixel);
直接绘制矢量图到控件界面代码:
Metafile mf = new Metafile(@"D:\矢量图.emf");
e.Graphics.DrawImage(mf, new Point(0, 0));
//
效果图如下(图一是绘制到位图的效果,图二直接绘制到控件界面):imageGDIEMFBitMap
绘制到位图代码:
Image img = Image.FromFile(@"D:\矢量图.emf", true);
Bitmap bmp = new Bitmap(img.Width, img.Height);
Graphics g = Graphics.FromImage(bmp);
g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half;
g.DrawImage(img, new Rectangle(0, 0, img.Width, img.Height), new Rectangle(0, 0,img.Width,
img.Height), GraphicsUnit.Pixel);
直接绘制矢量图到控件界面代码:
Metafile mf = new Metafile(@"D:\矢量图.emf");
e.Graphics.DrawImage(mf, new Point(0, 0));
//
效果图如下(图一是绘制到位图的效果,图二直接绘制到控件界面):imageGDIEMFBitMap
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货