2010-03-27 62 views
1

我在使用java中的圖像類時遇到了問題。在java中使用DataBuffer.TYPE_FLOAT或DataBuffer.TYPE_DOUBLE寫出BMP文件

我正在用DataBuffer.TYPE_DOUBLE創建一個緩衝圖像。這一切都在記憶中工作正常(我認爲)。但是當我嘗試使用ImageIO.write編寫它時,問題就開始了。

起初我根本沒有得到任何的異常,而是隻讓我煩惱的空輸出文件..

位代碼閒逛之後,我發現,BMP的作家犯規支持寫作type_double類型的文件。

From: BMPImageWriterSpi.canEncodeImage: 
     if (dataType < DataBuffer.TYPE_BYTE || dataType > DataBuffer.TYPE_INT) 
     return false; 

所以我的問題是,有沒有人有辦法將這些圖像寫出到磁盤?任何文檔或教程或鏈接都會有所幫助。

感謝, 羅勒Dsouza

回答

2

由於BMP格式不使用任何浮點表示,在較高的水平並不十分有意義使用浮點數據來表示的圖像,你將寫入BMP。你真的需要這樣做嗎?爲什麼不輸入?

javadoc for DataBuffer.TYPE_DOUBLE表明它目前不打算使用。

+0

謝謝你指出。我經歷了太多的太陽源代碼,但沒有閱讀發佈的Java文檔:) 雖然我的代碼的其餘部分使用雙。如在,我可以通過柵格設置和讀取值,當我使用TYPE_DOUBLE時,我可以通過其他顏色模型正常化和非規範化它們。但它是有道理的。 我真正想做的是實現一個隱寫術應用程序。 (以某種誤導的方式)。所以它回到了繪圖板,也許我應該閱讀關於隱寫的文章,從架子上盯着我看:) – 2010-03-29 15:54:01