2014-05-20 9 views
0

나는 내가 다음과 같습니다 배열을 사용하여 동심 사각형의 상자, 인쇄 할 방법을 알아 내려고 노력하고 있어요 : http://imgur.com/U5rXGsY배열을 사용하여 이미지를 인쇄하려면 어떻게해야합니까?

나는 각 색상의 RGB 값의 테이블을 가지고,하지만 난 방법을 잘 모르겠습니다 이것에 대해 가봐. 이것은 내가 지금까지 가지고있는 것이다. 컴파일 후 PPM 파일 형식으로 내보내집니다. printf() 호출하기 전에

#include <stdio.h> 
#include <stdlib.h> 
#define HEIGHT 700 
#define WIDTH 700 
#define COLORS 3 

int main(){ 
int x,y,i; 
unsigned char image[WIDTH][HEIGHT][COLORS]; 
image[][][COLORS]={{0},{0},{0,1,2}}; 
printf("P6\r\n"); 
printf("700 700\r\n"); 
printf("255\n"); 
for(y=0;y<HEIGHT;++y) 
{ 
for(x=0;x<WIDTH;++x) 
{ 
    image[700][700][0]; 
    image[700][700][1]; 
    image[700][700][2]; 
    printf 
} 
} 
return 0; 
} 
+0

RGB 배열을 가져 와서 이미지 파일을 출력하거나 배열 이미지를 화면에 표시하려는 방법을 찾으려고하십니까? –

+0

ppm 뷰어로 열 수있는 이미지 파일 출력 – user3583829

+0

PPM 파일 형식 및 압축 (있는 경우)에 익숙해 져야합니다. 일단 배열이 있으면'fopen()'을 사용하여 출력 파일을 만들고'fwrite()'를 사용하여 배열을 올바른 형식으로 쓸 수 있습니다. 형식을 출력하기 위해'printf()'를 사용하는 것 같지만 콘솔 대신에 파일에 써야합니다. 파일 핸들을 열고 대신'fprintf()'를 사용하십시오. –

답변

0

넣어이 :

FILE * outputFile = fopen("path/to/output/file.ppm","w"); 

다음, 대신 중첩 된 루프를 사용하는 마지막 fprintf(outputFile,"text")

printf("text") 전화의 모든 변경, 당신은 모두를 쓸 수 있습니다 한 통화의 데이터 사용 fwrite()

두 개의 루프를 모두 다음으로 대체하십시오.

fwrite((void*)image, COLORS, WIDTH * HEIGHT, outputFile); 

이 배열은 1 RGB 픽셀 청크의 outputFile에 배열을 씁니다. void * cast는 경고를 묵음 처리해야합니다. 이미지 배열은 실제로 포인터입니다. 엔디안과 관련하여 몇 가지 문제가있을 수 있지만이 코드를 테스트하고 작동하는지 확인하십시오.