휴대용 그레이맵 (.pgm)

Netpbm 표준

휴대용 회색조 이미지 형식(Portable Graymap Format, PGM)은 Netpbm 제품군의 회색조 이미지 사양으로, 컴퓨터 비전, 로보틱스, 광학 검사 및 디지털 이미지 처리 알고리즘에 널리 사용됩니다.

검사 및 메타데이터

운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 PGM 파일을 식별합니다:

여기에 파일을 선택하거나 놓으세요

100% 브라우저 내 프라이버시 변환 - 파일이 기기를 절대 떠나지 않습니다

또는 붙여넣기 Ctrl+V
제로 네트워크 전송 프라이버시 보장: 외부 서버로 업로드된 데이터 0바이트. 모든 처리는 브라우저 샌드박스내에서 로컬로 수행되었습니다.

바이트 단위 헤더 시그니처 (매직 바이트)

운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 PGM 파일을 식별합니다:

16진수 시그니처 (오프셋 0):

50 32 / 50 35

ASCII 표현: P2 / P5

표준화: Netpbm Library Standard

기술 사양

컨테이너 아키텍처ASCII (P2) or binary (P5) Netpbm format with width, height, maximum gray value, and pixel stream
압축Uncompressed raw binary bytes or human-readable ASCII text numbers
바이트 엔디안Big-Endian (for 16-bit binary samples in P5 mode)
색 공간Linear Grayscale or sRGB Grayscale
채널 및 구조1 channel grayscale (8-bit or 16-bit precision)
최대 크기Practically unlimited (supports arbitrary 64-bit coordinate space)
투명도None
스트리밍 및 프로그레시브Sequential row-by-row streaming playback

기술 비교 매트릭스: PGM 대 경쟁사

기술적 속성PGM (현재)PBMPPMPNG
색상 모드회색조 (8비트 / 16비트)1비트 단색RGB 트루컬러 (24비트 / 48비트)회색조, RGB, RGBA
Netpbm 계열PGM (Portable Graymap)PBM (Portable Bitmap)PPM (Portable Pixmap)비 Netpbm W3C 표준
매직 바이트P2 (ASCII) / P5 (바이너리)P1 (ASCII) / P4 (바이너리)P3 (ASCII) / P6 (바이너리)‰PNG....
압축비압축비압축비압축무손실 Deflate

일반적인 손상 모드 및 헥스 복구 가이드

이미지가 반전되거나 완전히 하얗게 날아간 상태로 표시됩니다.

근본 원인: 헤더의 잘못 일치된 'maxval' 파라미터 (예: maxval이 255 대신 1로 선언됨).

복구: maxval 헤더 라인을 수정하거나 File2File Netpbm 변환기로 트랜스코딩하세요.

보안 분석 및 파서 공격 벡터

PGM 디코더는 버퍼 오버런을 방지하기 위해 파싱된 픽셀 수가 선언된 차원과 일치하는지 신중하게 검증해야 합니다.

알려진 공격 벡터

  • 너비 * 높이 * (maxval > 255 ? 2 : 1) 버퍼 할당 중 정수 오버플로우.
  • 잘못된 형식의 ASCII 숫자 토큰을 읽을 때의 버퍼 오버리드.
  • 조작된 헤더 차원에 의해 트리거되는 대규모 메모리 할당을 통한 서비스 거부.

방어적 모범 사례:

역사적 배경 및 주요 이력

2000과학적 이미징을 위해 바이너리 P5 모드에서 16비트 심도(최대값 65535까지)가 표준화되었습니다.
1993표준 중간 회색조 형식으로 Netpbm 툴킷에 통합되었습니다.
1989제프 포스칸저(Jef Poskanzer)가 완전한 256단계 회색조 지원으로 PBM을 보완하기 위해 PGM을 만들었습니다.

주요 장점

  • 제로 복잡성: 외부 라이브러리 없이 C, Python 또는 WebAssembly에서 파싱하고 작성하기 매우 간단합니다.
  • 기본 16비트 회색조 지원으로 높이 맵, 깊이 맵 및 열화상 이미지에 이상적입니다.
  • ASCII 모드(P2)를 사용하면 표준 텍스트 편집기에서 원시 픽셀 값을 직접 검사하고 조작할 수 있습니다.

기술적 제한 사항 및 단점

  • 압축 없음: PNG와 같은 압축 형식에 비해 큰 파일 용량.
  • 물리적 치수, 색상 공간 또는 지리적 위치에 대한 메타데이터가 부족합니다.
  • 엄격한 단일 채널: 색상 데이터나 알파 투명도를 저장할 수 없습니다.

흥미로운 기술적 상식

  • OpenCV, ROS (로봇 운영 체제) 및 머신 Vision 시스템은 SLAM 내비게이션 맵에 PGM을 자주 사용합니다.
  • 게임 개발자들은 원시 고도 데이터가 압축되어 있지 않고 로드하기 쉽기 때문에 16비트 PGM 파일을 지형 높이 맵으로 자주 사용합니다.
  • 헤더의 'maxval' 파라미터는 최대 밝기 값을 정의합니다(8비트의 경우 일반적으로 255, 16비트의 경우 65535).

자주 묻는 기술 질문

PGM 포맷은 주로 어디에 사용되나요?

PGM은 주로 컴퓨터 비전(OpenCV), 로보틱스(ROS 맵 파일), 과학적 이미징, 3D 지형 높이 맵 생성에 사용됩니다.

P2와 P5 PGM 파일의 차이점은 무엇인가요?

P2는 각 픽셀이 숫자로 기록된 일반 ASCII 텍스트인 반면, P5는 픽셀을 압축된 바이너리 바이트로 저장합니다.

PGM을 JPG 또는 PNG로 어떻게 변환할 수 있나요?

완벽한 프라이버시를 유지하며 브라우저에서 직접 PGM 파일을 PNG 또는 JPG로 변환하려면 File2File.app에 파일을 업로드하세요.