2009-11-24 4 views
3

나는 그레이 스케일 이미지가있는 정수 배열을 가지고 있으며이를 응용 프로그램에 표시해야합니다. C++에서 gtkmm으로 프로그래밍 중이며 이미지의 각 픽셀을 표시하고 액세스 할 수있는 캔버스와 같은 위젯을 찾을 수 없습니다.정수 배열에서 gtkmm의 이미지를 표시

+0

나는 똑같은 문제가 있었지만 그것을 이해할 수 없었다. (너무 많이 시도하지도 않았고, 그냥 lulz의 mandelbrot을 계획하려고 시도하지 않았다.) 겉으로보기에는 비슷한 픽셀 버퍼가 너무 많아서 문서가 매우 작습니다. – Tronic

답변

0

는 지금까지 내가 이해 당신은 생성자에 다음과 같은 클래스를 사용해야합니다

Gdk::Bitmap::Bitmap(const char *data, int width, int height) 

비트 맵을 만들고 그것으로 데이터를로드 할 수 있습니다.

나중에 Gdk :: Pixmap 또는 Gdk :: Window를 사용하여 그릴 수 있습니다. 픽셀을 저장하는 Pixbuf 클래스도 있습니다.

+1

비트 맵은 흑백 이미지 용이지만 그레이 스케일이 필요합니다. Pixmap 좋은 수 있습니다. 하지만 제 문제는 화면에서 픽셀 단위로 픽셀을 가져오고 변경하는 쉽고 빠른 방법이 필요하다는 것입니다. –

0

해결책을 찾고 있습니다. 지금까지 (gtkmm-3.0을 사용하여) 지금까지 발견 한 유일한 방법은 그레이 스케일 이미지를 픽셀 단위로 RGB로 변환하는 것입니다.

다른 데이터 버퍼를 원래 크기의 3 배까지 할당합니다. 그런 다음 원본에서 복사본으로 각 픽셀을 세 번 복사합니다. 1280 * 1024을 만들려면 (내 경우)는 호출 할 수 있습니다 pixbuf :

Gdk::Pixbuf::create_from_data(copy, Gdk::COLORSPACE_RGB, false, 8, 1280, 1024, 1280*3); 

당신이 Gdk::Pixbuf::get_pixels()을 사용할 수 있습니다 내가 생각 비트 맵의 ​​픽셀에 액세스 할 수 있습니다.