2013-02-11 7 views
0

Я борюсь с FreeImage, и документация мне не помогает!Отображение EXR-файлов в Windows Forms

Мне нужно отобразить изображение tif, exr или HDR в кадре с C#, и мне не удается, и мне интересно, как я могу это сделать ... Я получаю сообщение об ошибке: только растровые изображения с типом FIT_BITMAP можно преобразовать. ...

Может ли кто-нибудь помочь мне с этим? Я полагаю, я должен преобразовать размолвку в растровое изображение, но я пытался, но я не знаю, как я должен это сделать еще ... Вот мой код:

FIBITMAP imageToDisplay = new FIBITMAP(); 
    imageToDisplay = FreeImage.Load(FREE_IMAGE_FORMAT.FIF_TIFF, i, FREE_IMAGE_LOAD_FLAGS.TIFF_CMYK); 
    Bitmap bitmap = FreeImage.GetBitmap(imageToDisplay); 
    pictureBox.Image = (Image)new Bitmap(bitmap);    
+0

Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

+0

Спасибо! Я забыл проверить заголовок после назначения тегов! :) – user1782638

ответ

0

Для отображения TIFFs, PictureBox.Image занимает System.Drawing.Image объект - и System.Drawing.Image.FromFile() поддерживает изображения TIFF.

Я не вижу необходимости включать какие-либо зависимые от третьих сторон. Все это встроено в структуру.

pictureBox.Image = Image.FromFile(someImage); 

Если TIFF не файл (например, если это просто массив байт или MemoryStream) - это тоже нормально - использовать Image.FromStream().

Для неподдерживаемых форматов файлов ваша задача - преобразовать их в формат, поддерживаемый System.Drawing.Image. Если это невозможно, возможно, вы не сможете использовать элемент управления PictureBox для этого задания.

Возможно, название вашего вопроса должно быть «Построение объектов изображения из файлов EXR» или «Отображение EXR-файлов в Windows Forms» или аналогичных.

+0

Спасибо за помощь. К сожалению, FromFile() избавляет меня от памяти, а файл около 6 мб. FromStream() дает мне неверный параметр :(Вот почему я попытался пойти с FreeImage, но я получаю только растровые изображения с типом FIT_BITMAP, которые можно преобразовать. :( – user1782638

+0

Из документации для 'Image.FromFile()': "Если файл не имеет допустимого формата изображения или GDI + не поддерживает формат пикселя файла, этот метод генерирует исключение OutOfMemoryException." – tomfanning

+0

Итак, это кажется, что мой tiff не поддерживается .. Знаете ли вы, как я могу обработать его для обработки? Потому что это действительный файл TIF ... Или мне нужно его преобразовать в растровое изображение с помощью freeimage ... – user1782638

 Смежные вопросы

  • Нет связанных вопросов^_^