2010-12-08 3 views
1

png++을 사용하여 png의 픽셀 색상 값을 읽으려면 어떻게해야합니까? 나는 documentation에서 값을 읽는 어떤 방법을 보지 못했습니다. 모든 값을 rgba 별도로 가져와 char 배열에 추가해야합니다.PNG ++ 픽셀 색상 값 읽기

답변

6

그래서 여기 [] 첫 번째는 해당 행의 X 번째 열에 다음 Y 번째 행을 가져오고 이후 :

사실, 당신이 image[Y][X]을하고자한다가는 댓글을 추가 할 수 없습니다.

Btw, 저는 PNG ++의 저자입니다. 원하실 경우 메일 링리스트 나 개인 이메일 또는 여기에서 자세한 질문을하십시오. :)

+0

고마워;) 이걸 [X] [Y]로 바꾸려면 어디를 봐야합니까? 나에게 더 논리적으로 보입니다. 또한 언제 이것을 구현할 예정입니까? "end_info.hpp에서 따옴표" "//TODO : 텍스트 주석 등을 읽고 쓰는 메소드를 추가하십시오." " – nebkat

+0

@Neb : C++에서'operator []'가 작동하는 방식입니다. 하나의 매개 변수 만 전달할 수 있습니다. PNG에서 ++ 이미지는 행의 벡터로 생각되므로'image [N]'이 N 번째 행이됩니다. 보다 직관적 인 방법으로 픽셀에 접근하려면'get/set_pixel (x, y)'를 사용하십시오. 인덱스의 범위를 확인하는 데는 벌칙이 있습니다. 텍스트 설명 지원 : 충분한 시간과 동기 부여가 있거나 누군가가 정말 좋은 패치를 보낼 때. :) – alex

+0

@alex, 픽셀의 내부 메모리 레이아웃에 대해 설명해 주시겠습니까? 예를 들어, 행 (scanlines?)이 함께 할당되어 패킹 된 경우 포인터를 사용하여 OpenGL 컨텍스트에 PNG를 텍스처로로드 할 수 있습니다. 픽셀로 먼저 메모리 픽셀로 복사하는 것이 좋습니다. 그건 그렇고, 당신의 도서관은 깔끔하고 도움이됩니다. 좀 더 파고 들었다면 아마 스스로에게 대답 할 수 있을지 모르겠지만, 먼저 물어보고 싶었습니다. 감사! –

2

나는, 그러나

등, 당신이 image[Y][X]png::image<T> image의 픽셀 (X, Y)에 액세스하고 image[Y][X].red에 액세스하여, 적색, 녹색, 청색의 값에 액세스 할 수 있습니다 생각 documentation on pixel을 읽고 ++ PNG 사용한 적이
+0

나는 그것을 밖으로 시도 할 것이다. 임 C 초보자 + + 그래서 어쨌든 많이 이해가 안돼 : S – nebkat

+0

대단히 고마워! – nebkat