2012-05-02 47 views
0

我需要獲取RGB值讀取圖像。我如何在C中做到這一點?我如何閱讀圖像文件?

圖像格式可以是PNG,JPG,BMP或其他常用格式。 它必須保存在一個文本文件中。

+1

OpenGL不會讀取或關心圖像文件格式。你應該[使用圖片加載庫](http://www.opengl.org/wiki/Image_Libraries)。 –

+1

哪種語言?哪個平臺? – phantasmagoria

+0

C編程語言,保存在文本文件中。 – shibly

回答

1

一個非常易於使用的圖像庫,可以覆蓋所有這些格式的讀取和寫入將是FreeImage。它主要是一個C庫,但也有C++的包裝等。

當你說「保存在一個文本文件」,這是非常不典型的圖像,因爲二進制格式更緊湊,存儲像素強度的原始字符串值。此外,許多格式使用壓縮,這意味着每像素沒有給定的「值」,而是必須對數據進行解壓縮,然後才能爲每個像素單獨分配一個值。有一些圖像格式,如PPM可以存儲爲ASCII數據,但同樣,這不一定是存儲大圖像的最有效方式。

因此,對於你的工作流程,你可以使用一個像庫向FreeImage讀值出的圖像文件,然後寫回未壓縮的像素值到PPM文件,或自定義格式的文本文件。