从图形调整图像大小?

时间:2011-02-17 20:24:42

标签: c# graphics

我正在尝试从屏幕上复制图像后调整图像大小,但无法弄清楚如何操作。我一直在阅读的教程建议使用Graphics.DrawImage来调整图像大小,但是当我运行此代码时,它不会调整大小。

Bitmap b = new Bitmap(control.Width, control.Height);
Graphics g = Graphics.FromImage(b);
g.CopyFromScreen(control.Parent.RectangleToScreen(control.Bounds).X, control.Parent.RectangleToScreen(control.Bounds).Y, 0, 0, new Size(control.Bounds.Width, control.Bounds.Height), CopyPixelOperation.SourceCopy);

g.DrawImage(b, 0,0,newWidth, newHeight);

任何帮助将不胜感激,谢谢!

2 个答案:

答案 0 :(得分:6)

试试这个。使用DrawImage时,图形不会“替换”图像 - 它会在源上绘制输入图像,这与您尝试绘制的图像相同。

这可能是一种更简洁的方法,但是......

Bitmap b = new Bitmap(control.Width, control.Height);
using (Graphics g = Graphics.FromImage(b)) {
   g.CopyFromScreen(control.Parent.RectangleToScreen(control.Bounds).X, 
      control.Parent.RectangleToScreen(control.Bounds).Y, 0, 0, 
      new Size(control.Bounds.Width, control.Bounds.Height),
      CopyPixelOperation.SourceCopy);
}
Bitmap output = new Bitmap(newWidth, newHeight);
using (Graphics g = Graphics.FromImage(output)) {
  g.DrawImage(b, 0,0,newWidth, newHeight);
}

答案 1 :(得分:0)

有什么理由不能只使用PictureBox控件吗?这种控制可以为你拉伸。