我用Graphics的DrawImage方法画出来的图比原来的图片模糊,这是正常的吗?

dusker 2009-08-10 03:58:52
今天刚开始学习Graphics的DrawImage方法,用了两个PictrueBox,box1是存储原图的,我把原图平移一下,画到box2里面,代码如下
Bitmap box1 = new Bitmap(pictureBox1.Image);
Bitmap box2 = new Bitmap(pictureBox1.Image.Width, pictureBox1.Image.Height);
Graphics g = pictureBox2.CreateGraphics();
g.Clear(this.pictureBox2.BackColor);
float x = (float)Double.Parse(textBox2.Text);
g.TranslateTransform(x, x);
g.DrawImage(box1, this.pictureBox2.ClientRectangle, 0, 0, box2.Width, box2.Height, GraphicsUnit.Pixel);
很简单的代码,立刻就画出来了。但是我发现新画出来的图比原来的要模糊,囧死我了……请问大家遇到过这种情况吗?是否正常?
...全文
2382 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
asight 2010-10-05
  • 打赏
  • 举报
回复
我的不需要画出来 只是保存起来 这个pixelmode就没必要了吧
z40144322 2009-12-17
  • 打赏
  • 举报
回复
太谢谢这两行代码了
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half;
我就少了第二条设置偏移害我坐标老对不齐
太谢谢zgke啦!
chaozi_249 2009-08-10
  • 打赏
  • 举报
回复
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
//
g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half;
//像素如何偏移-----像素在水平和垂直距离上均偏移 -5,个单位,以进行高速锯齿消除。

vs是这样解释的。
dylike 2009-08-10
  • 打赏
  • 举报
回复
是指图片在缩放时,系统该如何对图片进行插补.
通过调整插补模式,可以使系统使用就近的相临像素进行平均计算后插入,这样可以使图片放大后模糊度大幅降低.插入的像素位置由偏移量控制.
另一种方法比较简单,直接G.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
robin521 2009-08-10
  • 打赏
  • 举报
回复
楼主把代码再写一下,看看注释就知道了.
netboygg 2009-08-10
  • 打赏
  • 举报
回复
学习了 不知道1楼的学习方法是什么样子的 介绍一下
zhangyanyang 2009-08-10
  • 打赏
  • 举报
回复
学习了
dusker 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zgke 的回复:]
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half;

加上这两行看看.
[/Quote]

哎,果然可以了。
能不能解释一下呀?
zgke 2009-08-10
  • 打赏
  • 举报
回复
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half;

加上这两行看看.

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧