純 Java 實現對數碼相機 RAW 格式資料進行解碼獲取影象資訊
阿新 • • 發佈:2018-12-29
我以前做的軟體裡有一個功能,需要根據使用者選擇的不同曝光、白平衡值從 RAW 格式檔案裡取得不同的影象。那款軟體的開發主要使用 Java 技術,但是當時這個功能是通過 JNI 呼叫 C++ 寫的一個庫實現的。因為在 Mac OS X 系統下使用 JNI 遇到的一系列問題,後來放棄了該款軟體 Mac 版本的釋出。
今天偶然發現一個類庫 jrawio(http://jrawio.tidalwave.it/),它作為 Java ImageIO API 的一個外掛,可以對數碼相機拍照後的 RAW 格式原始資料(例如 Nikon 的 NEF 格式或 Canon 的 CRW/CR2 格式)進行解碼,取得想要的影象資訊。需要強調的是,它是 100% Java 實現,就是說可以忽略平臺差異,真正做到跨平臺。這個庫我還沒有使用過,不知道解碼影象效果以及解碼速度怎麼樣,有興趣朋友可以跟進。
關於數碼相機的 RAW 格式資料,大家可能還比較陌生。目前越來越多的數碼相機已開始使用RAW格式拍攝照片,RAW檔案是 “毛坯”,我們可以任意的調整色溫和白平衡,進行創造性類似“暗房”的製作,而且不會造成影象質量的損失,保持了影象的品質。相機通過場景拍攝, RAW只會記錄光圈、快門、焦距、ISO等資料,並未對所拍攝的圖片進行任何加工,為影象儲存了完整的資料,RAW格式它能夠給每個畫素點更深的數字深度,為攝影師的創作保留了很大的空間。
我轉載過一篇關於 RAW 格式的簡單介紹,大家可以看一下,想深入研究還要搜尋專業資料。《