작업은 800 열과 600 행이있는 이미지에 러시아 국기의 이미지를 만드는 것입니다. 나는에 의해 생성 된 이미지를 보았을 때왜 내 ppm 파일의 이미지가 약간 벗어 납니까?
#include <stdio.h>
int main() {
printf("P6\n");
printf("%d %d\n", 800, 600);
printf("255\n");
int width, heightWhite, heightBlue, heightRed, i, j;
unsigned char Rcolor, Bcolor, Gcolor;
width = 800;
heightWhite = 200;
heightBlue = 400;
heightRed = 600;
for (j = 0; j <= heightWhite; j++) {
for (i = 0; i <= width; i++) {
Rcolor = 255;
Bcolor = 255;
Gcolor = 255;
printf("%c%c%c", Rcolor, Gcolor, Bcolor);
}
}
for (j = 201; j <= heightBlue; j++) {
for (i = 0; i <= width; i++) {
Rcolor = 0;
Bcolor = 255;
Gcolor = 0;
printf("%c%c%c", Rcolor, Gcolor, Bcolor);
}
}
for (j = 401; j <= heightRed; j++) {
for (i = 0; i <= width; i++) {
Rcolor = 255;
Bcolor = 0;
Gcolor = 0;
printf("%c%c%c", Rcolor, Gcolor, Bcolor);
}
}
return (0);
}
그러나 : 그래서, 플래그가 여기 내 코드입니다 (하단 중간에 파란색, 빨간색 위에 흰색) 세 개의 동일한 부분
으로 나누어 져 내 프로그램에서 파란색과 빨간색 막대의 상단이 완전히 수평이 아니라는 것을 발견했습니다. 파란색 막대와 빨간색 막대의 위쪽이 이전 픽셀보다 높게 나타나는 행의 일부처럼 보입니다. 왜 내가 이걸 얻고 있는지. 나는 이미 강사의 ppm 파일을 김프 (이것은 ppm 파일을 보는 데 사용하는 파일 임)에서 실행했으며 라인은 완벽하게 평준화되었습니다. 어떤 아이디어?
(내 PPM 파일을 첨부하는 방법을 잘 모르겠지만, 여기가 같이하기로했다 무엇 : http://users.csc.calpoly.edu/~dekhtyar/101-Fall2013/labs/lab7.html) 당신은 각 행에 대해 한 번 더 픽셀을 인쇄하는
아 내가 볼! 그냥 궁금 해서요,하지만 어떻게 높이를 "<="말할 수 있니? 도와 주셔서 감사합니다! – Karen
@Karen, 편집했습니다 –
귀하의 모듈로 트릭이 너무 영리하다고 생각합니다. 명시 적으로 각 색상에 대해 3 개의 루프로 다른 너비를 존중하면 IMO가 더 이해하기 쉽고 다른 너비의 색상 패치에서도 작동합니다. – shodanex