2010-04-17 79 views
1

如何將圖像中的像素(.png文件)轉換爲整數數組,其中每個像素都轉換爲與其ARGB整數相等的整數數組?順便說一下,不是一個2D整數數組,一個1D(通過數組[row * width + col]訪問的地方)。C++將圖像轉換爲整數陣列

謝謝。

+5

如果您真的想在沒有第三方庫的情況下做到這一點,您將希望成爲PNG規範的好朋友:http://www.w3.org/TR/PNG/。閱讀完(和相關資料)後,這只是編程的一小部分。 – 2010-04-17 19:53:29

+0

我建議你不要接近精神科診所,否則會卡住。 – jweyrich 2010-04-17 20:02:22

+0

@jweyrich,你是什麼意思? @詹姆斯,謝謝,我會檢查出來的。 – jonathanasdf 2010-04-17 20:04:38

回答

1

一旦您已經閱讀圖像數據,以一定的緩衝,普通鑄鐵應該做的伎倆:

GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file ("image.png", NULL); 
unsigned char *pixels = gdk_pixbuf_get_pixels (pixbuf); 
int *array = reinterpret_cast<int*>(pixels); 

示例使用GdkPixbuf庫,但其他圖書館應該是類似。

0

除非你是爲了興趣和學習而做,否則我會建議你使用第三方庫,例如ImageMagick
這將節省您的時間(避免錯誤)

+0

時間流逝,現在ImageMagick存在多個API。 C++是[Magick ++](http://www.imagemagick.org/Magick++/)。 – Hastur 2015-02-16 21:49:37