C ++ Преобразование изображения в целочисленный массив - PullRequest
1 голос
/ 17 апреля 2010

Как мне перейти к преобразованию пикселей изображения (файл .png) в целочисленный массив, где каждый пиксель преобразуется в его целочисленный эквивалент ARGB? Кстати, не двумерный целочисленный массив, а одномерный (доступ осуществляется через массив [row * width + col]).

Спасибо.

Ответы [ 2 ]

1 голос
/ 18 апреля 2010

После того, как вы прочитали данные изображения в некотором буфере, обычное приведение должно помочь:

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 голосов
/ 18 апреля 2010

Если вы не делаете это для интереса и изучения, я бы порекомендовал вам использовать стороннюю библиотеку, например ImageMagick .
Это сэкономит ваше время (и позволит избежать ошибок)

...