A PictureBox
, который имеет SizeMode.Zoom
и увеличивает исходное изображение, добавляет белый цвет по нижнему и правому краям.У кого-нибудь есть простой проверенный обходной путь?Я считаю, что ошибка в GDI +, поэтому очевидный пользовательский перерисовка не исправит это.В настоящее время я использую WPF, который я хочу избежать.
Я даже соглашусь на kluge, который заменяет плохой белый черным:)
Пример: из источника, имеющего один центральный белый пиксель, вместо этого:
![enter image description here](https://i.stack.imgur.com/eikxN.png)
это дает:
![enter image description here](https://i.stack.imgur.com/Vza17.png)
Код:
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
}
Спасибо