幻灯片中的C#缩放图像在左上方被裁剪

时间:2016-05-10 10:56:30

标签: c# zoom crop picturebox

我想制作非常简单的油漆/图像编辑器。主要是用于像素编辑,但这看起来并不相关。 为了减轻我的努力,我决定将图像尺寸保持在16x16。

我填充表单,添加PixelBox并在其上拍一个默认图像。 当然,我需要使像素可见,将插值设置为NearestNeighbor。

然后,我将像素盒拉伸到320x320。情况就出现了。

图像显示如下: Cropped image

有人可以对此有所了解吗?这只是一张16x16的图像,上面有我制作的棋盘图案,但我无法弄清楚为什么它会在左上角显示偏移量。

此外,尚未添加任何代码。我认为这是默认行为?

1 个答案:

答案 0 :(得分:0)

如果您查看页面上发生完全相同错误的示例,那么它必定是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;
    }