Picturebox 中的 C# 缩放图像在左上角被裁剪
C# Zoomed image in Picturebox gets cropped in top left
我想做一个非常简单的paint/image编辑器。主要用于像素编辑,但这似乎并不相关。
为了减轻我的工作量,我决定将图像大小保持在 16x16。
我填充表单,添加 PixelBox 并在其上添加默认图像。
当然,我需要让像素可见,将插值设置为NearestNeighbor。
然后,我将像素框拉伸到 320x320。于是就出现了这种情况。
图片显示如下:
Cropped image
有人可以解释一下吗?这只是我制作的带有棋盘格图案的 16x16 图像,但我无法弄清楚为什么它会以左上角的偏移量显示。
此外,尚未添加任何代码。我假设这是默认行为?
如果您查看页面上的示例会发生完全相同的错误,那么这一定是 PixelBox 上的错误。
不要为此类操作使用自定义控件,只需使用标准 PictureBox 并自行缩放图像即可:
public Bitmap ScaleBitmap(Bitmap src, Size NewSize)
{
Bitmap bmp = new Bitmap(NewSize.Width, NewSize.Height, src.PixelFormat);
Graphics g = Graphics.FromImage(src);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
g.DrawImage(src, new Rectangle(Point.Empty, NewSize), new Rectangle(0, 0, src.Width, src.Height), GraphicsUnit.Pixel);
g.Dispose();
return bmp;
}
我想做一个非常简单的paint/image编辑器。主要用于像素编辑,但这似乎并不相关。 为了减轻我的工作量,我决定将图像大小保持在 16x16。
我填充表单,添加 PixelBox 并在其上添加默认图像。 当然,我需要让像素可见,将插值设置为NearestNeighbor。
然后,我将像素框拉伸到 320x320。于是就出现了这种情况。
图片显示如下: Cropped image
有人可以解释一下吗?这只是我制作的带有棋盘格图案的 16x16 图像,但我无法弄清楚为什么它会以左上角的偏移量显示。
此外,尚未添加任何代码。我假设这是默认行为?
如果您查看页面上的示例会发生完全相同的错误,那么这一定是 PixelBox 上的错误。
不要为此类操作使用自定义控件,只需使用标准 PictureBox 并自行缩放图像即可:
public Bitmap ScaleBitmap(Bitmap src, Size NewSize)
{
Bitmap bmp = new Bitmap(NewSize.Width, NewSize.Height, src.PixelFormat);
Graphics g = Graphics.FromImage(src);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
g.DrawImage(src, new Rectangle(Point.Empty, NewSize), new Rectangle(0, 0, src.Width, src.Height), GraphicsUnit.Pixel);
g.Dispose();
return bmp;
}