【发布时间】:2011-12-16 17:31:44
【问题描述】:
我需要拉伸各种大小的位图来填充 PictureBox。
PictureBoxSizeMode.StretchImage 可以满足我的需要,但想不出使用这种方法在图像中正确添加文本或线条的方法。下图是一个 5x5 像素的位图,拉伸为 380x150 的 PictureBox。
pictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox.Image = bmp;
我尝试以这种方式调整this example 和this example
using (var bmp2 = new Bitmap(pictureBox.Width, pictureBox.Height))
using (var g = Graphics.FromImage(bmp2))
{
g.InterpolationMode = InterpolationMode.NearestNeighbor;
g.DrawImage(bmp, new Rectangle(Point.Empty, bmp2.Size));
pictureBox.Image = bmp2;
}
但是得到这个
我错过了什么?
【问题讨论】:
-
你最后没有dispose图片。g.drawImage()后尝试使用bmp.dispose();
-
处理pictureBox.Image,而不是bmp2。
-
为什么要使用 Dispose?这不是 GC 的工作吗?
-
@JackN:没有。终结器是 GC 的责任。 Dispose 是包含代码的责任。
标签: c# winforms bitmap picturebox