PictureBox缩放抗锯齿bug的解决方法?

时间:2011-10-29 19:42:45

标签: winforms windows-xp

具有PictureBox且放大源图像的SizeMode.Zoom在底部和右边添加白色。任何人都有一个简单的经过验证的解决方法?我相信这个bug是在GDI +中所以明显的自定义重绘不会修复它。目前我正在使用我想要避免的WPF。

我甚至会选择用黑色替换坏白色的kluge:)

示例:来自具有单个中心白色像素的源,而不是:

enter image description here

它给出了这个:

enter image description here

代码是:

private void PictureBoxZoomBug()
{
  BitmapSource bitmapSource = 
    BitmapSource.Create(3, 3, 96, 96, System.Windows.Media.PixelFormats.Gray8, null,
     new byte[] { 0, 0, 0, 0, 0xFF, 0, 0, 0, 0 }, 3);
  TestDiscamImage.Source = bitmapSource;  // OK

  Bitmap bitmap;
  using (MemoryStream stream = new MemoryStream())
  {
    PngBitmapEncoder enc = new PngBitmapEncoder();
    enc.Frames.Add(BitmapFrame.Create(bitmapSource));
    enc.Save(stream);
    bitmap = new System.Drawing.Bitmap(stream);
  }
  TestDiscamCapture_pictureBox.Image = bitmap; // Extra white at bottom and right 
  }

由于

0 个答案:

没有答案