각 행이 픽셀에 해당하고 각 열이 PPM P3 이미지의 R G B 값인 행렬을 원합니다.PPM (P3) 이미지의 픽셀 데이터를 C의 매트릭스로 어떻게 읽습니까?
[imageWidth * imageHeight] [3]을 크기로 사용하여 매트릭스를 만들려고했지만 크기가 채워 지지만 영원히 남아있는 것으로 보입니다. 내가 뭔가를 놓친 것 같아요, 아무도 내가 잘못했는지 설명하거나 더 나은 방법을 제안 할 수 있습니까?
int pixels [imageSize] [3];
while(fgets(line,70,fd) != NULL){
for (column = 0; column < (imageSize); column++){
for (row = 0; row < 1; row++){
sscanf(line, "%d %d %d", &r, &g, &b);
pixels [column] [row] = r;
pixels [column] [row + 1] = g;
pixels [column] [row + 2] = b;
}
}
}
라인은 fgets 기능으로 읽은 라인을 참조합니다.
당신을 결코 :
처음 래스터의 첫 번째 행의 첫 번째 문자에 위치하는
FILE
와 함께, 당신은fd
에 의해 지정된FILE
에서imageSize
픽셀을 읽을 수 있음을 감안할 때,이 트릭을 할 것입니다 'line'을 갱신하면, 같은 값을 반복해서 스캔 할 수 있습니다. – jwodder와우, 나는 업데이트 라인을 수행하는 내 outer while 루프를 놓쳤습니다. –
이미지의 다른 * 행 *에 r, g, b 구성 요소를 넣는 것은 신비한 일입니다. 또한 왜'for (column = 0; column <(imageSize); column ++)'루프를 읽었을 때마다 느려지는 이유. 저는 종이에 비공식 의사 코드 (pseudo code)가 있더라도 당신이 원하는 것을 정확히 보여주는 흐름 차트를 작성하는 것이 좋습니다. –