2010-04-17 6 views
1

이미지 (.png 파일)의 픽셀을 정수 배열로 변환하려면 어떻게해야합니까? 각 픽셀은 ARGB 정수로 변환됩니다. 그런데 2D 정수 배열이 아니라 1D 배열입니다 (여기서 access는 array [row * width + col]을 통해 이루어진다).C++ 이미지를 정수 배열로 변환

감사합니다.

+5

타사 라이브러리없이이 작업을 수행하려는 경우 PNG 사양 (http://www.w3.org/TR/PNG/)과 친해지려고합니다. 그 (및 관련 자료)를 읽은 후에는 프로그래밍의 작은 문제 일뿐입니다. –

+0

정신과 진료소에 가까이 가지 말 것을 권합니다. 그렇지 않으면 병이 들게됩니다. – jweyrich

+0

@jweyrich, 당신은 무엇을 의미합니까? @ 제임스, 고마워. 내가 조사해 볼께. – jonathanasdf

답변

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

관심과 학습을 위해 그것을하지 않는 한 제 3 자 라이브러리 (예 : ImageMagick)를 사용하는 것이 좋습니다.
이 당신에게 시간을 절약 (버그를 방지) 일부 버퍼에 이미지 데이터를 읽고 나면

+0

시간이 지났으며 ImageMagick 용 API가 두 개 이상 존재합니다. C++ 하나는 [Magick ++] (http://www.imagemagick.org/Magick++/)입니다. – Hastur