Обходной путь для ошибки сглаживания PictureBox Zoom? - PullRequest
0 голосов
/ 29 октября 2011

A PictureBox, который имеет SizeMode.Zoom и увеличивает исходное изображение, добавляет белый цвет по нижнему и правому краям.У кого-нибудь есть простой проверенный обходной путь?Я считаю, что ошибка в 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 
  }

Спасибо

...