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;
    }