Сохранить изображение как Tiff - PullRequest
2 голосов
/ 06 марта 2012

Я получаю байтовый массив из библиотеки и хочу сохранить его как файл в оттенках серого Tiff / 16 бит на пиксель.

Я использую этот метод для этого:

private static void CreateBitmapFromBytes(byte[] pixelValues)
{
  Bitmap pic = new Bitmap(1024, 1024, PixelFormat.Format16bppGrayScale);

  BitmapData picData = pic.LockBits
   ( new Rectangle(0, 0, pic.Width, pic.Height)
   , ImageLockMode.ReadWrite
   , pic.PixelFormat
   );
  IntPtr pixelStartAddress = picData.Scan0;

  Marshal.Copy(pixelValues, 0, pixelStartAddress, pixelValues.Length);

  pic.UnlockBits(picData);
  pic.Save("grid.tif", ImageFormat.Tiff); //< HERE IS THE ERROR
}

И я получаю сообщение об ошибке «Произошла общая ошибка в GDI +».Проблема возникает как в Vista / 32-битной, так и в Win7 / 64-битной.Я использую .NET 4.0

РЕДАКТИРОВАТЬ:

Если я изменю ImageFormat.Tiff на ImageFormat.Bmp У меня нет ошибки.Но это все еще изображение TIFF, которое я хочу.

Ответы [ 2 ]

4 голосов
/ 06 марта 2012

Вот решение для вашей проблемы Решение "Общей ошибки в GDI +".

2 голосов
/ 07 марта 2012

PixelFormat.Format16bppGrayScale не поддерживается в GDI +.Это не имеет ничего общего с TIFF.Этот формат еще не реализован.

...