【问题标题】:C# Zoomed image in Picturebox gets cropped in top leftPicturebox中的C#缩放图像在左上角被裁剪
【发布时间】:2016-09-05 07:29:13
【问题描述】:

我想做一个非常简单的绘画/图像编辑器。主要是用于像素编辑,但这似乎无关紧要。 为了减轻我的工作量,我决定将图像尺寸保持在 16x16。

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

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

图像显示如下: Cropped image

有人能解释一下吗?这只是我制作的带有棋盘图案的 16x16 图像,但我无法弄清楚为什么它会在左上角显示偏移量。

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

【问题讨论】:

  • 有点晚了,但如果你还没有弄清楚...将g.PixelOffsetMode 设置为PixelOffsetMode.Half

标签: c# zooming crop picturebox


【解决方案1】:

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

【讨论】:

  • 你好古斯曼。抱歉回复晚了。感谢您的帮助。它有点工作。偏移仍然发生。我会标记你的答案,因为它提出了有效的观点并且有很好的信息。似乎调整大小从左上角像素的中间开始......
猜你喜欢
  • 2016-06-30
  • 1970-01-01
  • 2016-08-29
  • 2017-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-18
  • 1970-01-01
相关资源
最近更新 更多