c# - 放大图片框时图像变得模糊

标签 c# winforms

我正在开发一个图像处理应用程序。为了缩放图像,我放大了 PictureBox。但在放大后,我得到了下面的图像。

Application Output Image

但是我想要下图这样的结果

enter image description here

这是我的代码:

      picturebox1.Size = new Size((int)(height * zoomfactor), (int) 
      (width* zoomfactor));
      this.picturebox1.Refresh();

最佳答案

PictureBox 本身总是会创建一个漂亮流畅的版本。

要创建您想要的效果,您需要自己绘制缩放版本。为此,您需要设置

 Graphics.InterpolationMode = InterpolationMode.NearestNeighbor;

那么就不会发生模糊了..

例子:

enter image description here

private void trackBar1_Scroll(object sender, EventArgs e)
{
    Bitmap bmp = (Bitmap)pictureBox1.Image;
    Size sz = bmp.Size;
    Bitmap zoomed = (Bitmap)pictureBox2.Image;
    if (zoomed != null) zoomed.Dispose();

    float zoom = (float)(trackBar1.Value / 4f + 1);
    zoomed = new Bitmap((int)(sz.Width * zoom), (int)(sz.Height * zoom));

    using (Graphics g = Graphics.FromImage(zoomed))
    {
      if (cbx_interpol.Checked) g.InterpolationMode = InterpolationMode.NearestNeighbor;
      g.PixelOffsetMode = PixelOffsetMode.Half;

      g.DrawImage(bmp, new Rectangle( Point.Empty, zoomed.Size) );
    }
    pictureBox2.Image = zoomed;
}

当然,您需要避免将 PBox 设置为 Sizemode Zoom 或 Stretch!

关于c# - 放大图片框时图像变得模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49554126/

相关文章:

c# - 检测左键单击 DataGridView 标题时是否按下 CTRL 键

c# - 如何定义数据类型?

winforms - 当 WinForms 控件托管在 VB6 窗体中时,如何使 ToolStripMenuItem 快捷键起作用

Java native 接口(interface)和 Windows 窗体

c# - 将自定义字体添加到 Windows Phone 8 应用程序

c# - 与 Unity 2D 编辑器相比,玩家在构建过程中的移动速度要快得多

c# - 不需要 SSL 和客户端证书的 TCPClient 服务器与客户端的连接失败

c# - 制作 winforms 2.0 启动画面

C# 加载.txt 文件并在 ListView 中显示

c# - 编写带有关键字突出显示的文本编辑器