다음은 5x8 크기의 이미지를 표현하는 최대값이 15인 P2 파일이다.
P2
5 8
15
15 15 8 15 15
15 8 8 8 15
8 8 8 8 8
12 12 12 12 12
12 5 12 5 12
12 12 12 12 12
12 5 12 5 12
12 12 12 12 12
최대값 항목은 회색 수준의 수를 나타낸다.
여기서는 수준 0(검은색)에서 수준 15(흰색)까지 총 16단계로 표현할 수 있다. (값이 255인 경우 최대 256개의 회색 음영을 지정할 수 있다.)아래 이미지는 위에 PGM이미지의 헤더에서 최대값 항목을 50으로 설정한 모습이다.
최대값이 더 커진 만큼 이미지가 더 어둡게 표현되는 것을 볼 수 있다.
다음은 5x8 크기의 이미지를 표현하는 최대값이 255인 P2 파일이다.
1) P5 헤더 형식은 P2와 동일하게 ASCII로 표현한다.
P5
5 8
255
→ ASCII 데이터를 Hex로 변환하면 50 35 0A 35 20 38 0A 32 35 35 0A
2) 한 줄을 표현하는 데 필요한 바이트 수 구하기
PGM(P5)는 각 픽셀을 단일 바이트로 나타내기 때문에 한 줄을 표현하는 데 이미지 너비 만큼의 바이트가 필요하다. 이미지 너비가 5이기 때문에 한 줄을 나타내는데 5바이트를 사용한다.
3) P5 데이터 만들기
최대값 항목이 255 이므로 흰색은 255(0xFF)로 표현되고, 검은색은 0(0x00)으로 표현된다.
FF FF 00 FF FF
FF 00 00 00 FF
00 00 00 00 00
CC CC CC CC CC
CC 55 CC 55 CC
CC CC CC CC CC
CC 55 CC 55 CC
CC CC CC CC CC
첫 번째 줄의 데이터를 보면 흰색 흰색 검은색 흰색 흰색
으로 표현될 것을 예상할 수 있다.
참고
http://paulbourke.net/dataformats/ppm/
https://www.fileformat.info/format/pbm/egff.htm