PGM은 휴대용 회색조 지도입니다. C의 2D 배열을 PNG, JPEG 또는 기타 이미지 형식의 이미지로 저장하려면 파일에 쓰기 전에 지정된 형식으로 데이터를 인코딩하기 위해 많은 작업을 수행해야 합니다.
Netpbm 형식은 간단하고 이식 가능한 솔루션을 제공합니다. Netpbm은 기본적으로 Linux 또는 Unix 플랫폼에서 사용되는 오픈 소스 그래픽 패키지입니다. 또한 Microsoft Windows 시스템에서도 실행됩니다.
모든 파일은 2바이트 매직 넘버로 시작됩니다. 이 매직넘버는 파일의 종류를 식별하는데 사용됩니다. 종류에는 PBM, PGM, PPM 등이 있습니다. 또한 인코딩(ASCII 또는 바이너리)을 식별합니다. 매직넘버는 대문자 P 뒤에 숫자가 오는 형태입니다.
ASCII 인코딩을 사용하면 사람이 쉽게 읽을 수 있고 다른 플랫폼으로 쉽게 전송할 수 있습니다. 바이너리 형식은 파일 크기 측면에서 더 효율적이지만 기본 바이트 순서 문제가 있을 수 있습니다.
PGM 파일을 작성하는 방법은 무엇입니까?
#include <stdio.h> main() { int i, j; int w = 13, h = 13; // This 2D array will be converted into an image The size is 13 x 13 int image[13][13] = { { 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 }, { 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31}, { 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47}, { 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63}, { 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79}, { 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95 }, { 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111}, { 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127}, { 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143}, { 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 159}, { 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175}, { 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191}, { 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207} }; FILE* pgmimg; pgmimg = fopen("my_pgmimg.pgm", "wb"); //write the file in binary mode fprintf(pgmimg, "P2</p><p>"); // Writing Magic Number to the File fprintf(pgmimg, "%d %d</p><p>", w, h); // Writing Width and Height into the file fprintf(pgmimg, "255</p><p>"); // Writing the maximum gray value int count = 0; for (i = 0; i < h; i++) { for (j = 0; j < w; j++) { fprintf(pgmimg, "%d ", image[i][j]); //Copy gray value from array to file } fprintf(pgmimg, "</p><p>"); } fclose(pgmimg); }
PGM 이미지는 아래와 같습니다
위 내용은 PGM 형식으로 이미지를 쓰는 C 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!