Winforms PictureBox缩放抗锯齿错误的解决方法?
一个Winforms PictureBox缩放抗锯齿错误的解决方法?,winforms,windows-xp,Winforms,Windows Xp,一个PictureBox,它具有SizeMode.Zoom并放大源图像,在底部和右侧边缘添加白色。有人有一个简单的行之有效的解决方案吗?我相信这个bug在GDI+中,所以明显的自定义重绘无法修复它。目前我正在使用WPF,这是我想要避免的 我甚至会接受用黑色代替坏白色的kluge:) 示例:来自具有单个中心白色像素的源,而不是: 它给出了: 代码是: private void PictureBoxZoomBug() { BitmapSource bitmapSource = Bi
PictureBox
,它具有SizeMode.Zoom
并放大源图像,在底部和右侧边缘添加白色。有人有一个简单的行之有效的解决方案吗?我相信这个bug在GDI+中,所以明显的自定义重绘无法修复它。目前我正在使用WPF,这是我想要避免的
我甚至会接受用黑色代替坏白色的kluge:)
示例:来自具有单个中心白色像素的源,而不是:
它给出了:
代码是:
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
}
谢谢将PictureBox.BackColor属性设置为黑色。天哪,是的,这对kluge来说很好用。请输入答案,以便我接受。谢谢,汉斯。我觉得你的建议很有帮助。但如果你不想把它作为一个答案,没问题。再次感谢。