PPM 포맷 (PNM 분석 #4)

윤찬호·2023년 2월 14일
0

이미지포맷

목록 보기
11/11

PPM (P3)

  • 헤더 매직넘버는 P3
  • 헤더 최대값 항목은 명암도 등급을 나타낸다
  • 각 픽셀을 ASCII 형식의 3개의 십진수 값(R,G,B)으로 저장한다

다음은 3x2 크기의 이미지를 표현하는 최대값이 255인 P3 파일이다.

P3
3 2
255
255 0 0 0 255 0 0 0 255
255 255 0 255 255 255 0 0 0

  • 첫 번째 라인 "P3"은 ASCII 버전의 PPM 형식을 식별한다.
  • 두 번째 라인은 3x2 이미지를 나타낸다.
  • 세 번째 라인인 최대값 항목은 색상 수준의 수를 나타낸다. 여기서는 수준 0에서 수준 255까지 총 256단계로 표현할 수 있다.
  • 1픽셀을 표현하기 위해 3바이트가 사용된다. 1픽셀은 R, G, B 순으로 저장된다.
    네 번째 줄을 각각의 픽셀로 분리하면 다음과 같다.
    R(255) G(0) B(0) => 빨강 R(0) G(255) B(0) => 초록 R(0) G(0) B(255) => 파랑

PPM (P6)

  • 헤더 매직넘버는 P6
  • 헤더 최대값 항목은 명암도 등급을 나타낸다
  • 각 픽셀을 3바이트(R,G,B)로 나타낸다

다음은 3x2 크기의 이미지를 표현하는 최대값이 255인 P6 파일이다.

1) P6 헤더 형식은 P3와 동일하게 ASCII로 표현한다.
P6
3 2
255
→ ASCII 데이터를 Hex로 변환하면 50 36 0A 33 20 32 0A 32 35 35 0A

2) 한 줄을 표현하는 데 필요한 바이트 수 구하기
PPM(P6)는 각 픽셀을 3바이트로 나타내기 때문에 한 줄을 표현하는 데 (이미지 너비 x 3바이트)가 필요하다. 이미지 너비가 3이기 때문에 한 줄을 나타내는데 9바이트를 사용한다.

3) P6 데이터 만들기
위에 'PPM (P3)' 픽셀 데이터를 P6로 변환하면 아래와 같다.

FF 00 00 00 FF 00 00 00 FF
FF FF 00 FF FF FF 00 00 00



참고
http://paulbourke.net/dataformats/ppm/
https://www.fileformat.info/format/pbm/egff.htm

0개의 댓글