2012-10-24 179 views
1

我需要將24位RGB(888)圖像數據轉換爲PNG或JPEG圖像(儘可能)。需要更簡單的方法來執行此操作,例如將RGB888轉換爲BMP,而不進行任何壓縮。如果是像添加PNG/JPEG標頭到RGB數據一樣,而不需要很小的修改就好了。準備好提供更多的細節要求..提前RGB888(24位)PNG/JPEG圖像算法

謝謝..

語言/平臺:C/Linux的

+0

[寫入用的libjpeg一個JPEG(http://stackoverflow.com/questions/4664087/write-a-jpeg-with-libjpeg-seg-fault) - 有用? –

+0

通過「少量修改將RGB數據添加到RGB數據」來創建JPEG圖像是不可能的。檢查'libjpeg'(參考C中的JPEG編碼器和解碼器實現)以將RGB轉換爲JPEG。 – simon

+0

感謝Roman R&Simon,我會用libjpeg檢查jpeg轉換。任何人都可以幫助我按照前面的要求在RGB888 tp PNG轉換。 – newbie

回答

2

使用miniz - 與zlib的兼容又名單一的C源文件放氣/充氣壓縮庫API,ZIP存檔讀/寫,PNG寫作。

1

如果你只需要一個圖像格式,那麼最簡單的可能是ppm(或PGM爲灰度)

你只需要一個小的ASCII頭添加到未壓縮的二進制數據,最形象的應用程序會讀取它。

P6 <-- magic value for binary data 
# a comment if you want 
640 480 <-- width x height 
255  <-- max pixel value 
.... binary data here ....... 
+0

+1另一個簡單的是TGA http://en.wikipedia.org/wiki/Truevision_TGA – leonbloy

+0

@leonbloy - 是的,關於pgm/ppm的好處是你可以寫帶有編輯器的標題。如果你的編輯器可以處理二進制文件,你甚至可以編輯成原始內存轉儲到一個圖像中 –