2013-02-11 129 views
0

我很努力地使用FreeImage,並且文檔對我幫助不大!在Windows窗體中顯示EXR文件

我需要在C#中的一個picturebox中顯示一個tif,一個exr或一個HDR圖像,我沒有成功,我不知道該怎麼辦...我得到的錯誤:只有類型的位圖的FIT_BITMAP可以轉換。 ...

任何人都可以幫我嗎?我想我必須爲TIFF轉換爲位圖,但我已經嘗試過,但我不知道我應該怎麼辦它尚未...這裏是我的代碼:

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/)」,其中的共識是「不,他們不應該」。 – 2013-02-11 16:27:31

+0

謝謝!分配標籤後,我忘了檢查標題! :) – user1782638 2013-02-11 16:31:54

回答

0

爲了顯示TIFF格式,PictureBox.Image需要System.Drawing.Image對象 - 和System.Drawing.Image.FromFile()支持TIFF圖像。

我看不出任何需要涉及任何第三方依賴關係。它都嵌入到框架中。

pictureBox.Image = Image.FromFile(someImage); 

如果你的TIFF是不是一個文件(例如,如果它只是一個字節數組或一個MemoryStream) - 那也可以 - 使用Image.FromStream()

對於不支持的文件格式,您的工作是將它們轉換爲System.Drawing.Image支持的格式。如果這不可行,則可能無法使用PictureBox控件執行此作業。

也許問題的標題應該是「從EXR文件構造圖像對象」或者「在Windows窗體中顯示EXR文件」或類似內容。

+0

感謝您的幫助。不幸的是,FromFile()給我的內存不足,文件大約6mb .. FromStream()給我無效的參數:(這就是爲什麼我試圖去FreeImage,但我得到只有類型爲FIT_BITMAP的位圖可以轉換。 :( – user1782638 2013-02-11 16:54:53

+0

從'Image.FromFile()'的文檔:「如果文件沒有有效的圖像格式,或者如果GDI +不支持該文件的像素格式,則此方法會引發OutOfMemoryException異常。」 – tomfanning 2013-02-11 17:00:47

+0

似乎我的tiff不支持..你知道我怎麼處理它,以便處理?因爲它是一個有效的TIF文件...否則我必須將它轉換爲位圖與freeimage ... – user1782638 2013-02-11 17:07:31

相關問題