PBM(Portable Bitmap) 포맷은 단색 이미지를 저장하는 데 사용되는 가장 간단하고 초기의 그래픽 파일 포맷 중 하나입니다. 회색조 이미지용 PGM(Portable GrayMap)과 컬러 이미지용 PPM(Portable PixMap)도 포함하는 Netpbm 제품군의 일부입니다. PBM 포맷은 프로그램에서 읽고 쓰기가 매우 쉽고 명확하며 모호하지 않도록 설 계되었습니다. 독립형 포맷이 아니라 다양한 이미지 포맷 간에 변환하기 위한 최소 공통 분모입니다.
PBM 포맷은 흑백(1비트) 이미지만 지원합니다. 이미지의 각 픽셀은 단일 비트로 표현되며, 흰색은 0, 검정색은 1입니다. 포맷이 간단하기 때문에 특수 이미지 처리 라이브러리가 필요하지 않고 기본 텍스트 편집 도구나 프로그래밍 언어를 사용하여 간단하게 조작할 수 있습니다. 그러나 이러한 간단성으로 인해 파일 크기를 줄이기 위한 압축 알고리즘을 사용하는 JPEG나 PNG와 같은 더 정교한 포맷보다 PBM 파일이 더 클 수 있습니다.
PBM 포맷에는 ASCII(일반) 포맷인 P1과 바이너리(원시) 포맷인 P4의 두 가지 변형이 있습니다. ASCII 포맷은 사람이 읽을 수 있으며 간단한 텍스트 편집기로 만들거나 편집할 수 있습니다. 바이너리 포맷은 사람이 읽을 수 없지만 공간 효율성이 더 높고 프로그램에서 읽고 쓰는 속도가 더 빠릅니다. 저장 방식의 차이에도 불구하고 두 포맷 모두 동일한 유형의 이미지 데이터를 나타내며 정보 손실 없이 서로 변환할 수 있습니다.
ASCII 포맷의 PBM 파일 구조는 파일 유형을 식별하는 2바이트 매직 넘버로 시작합니다. PBM ASCII 포맷의 경우 'P1'입니다. 매직 넘버 다음에는 공백(공백, 탭, CR, LF)이 있고, 그 다음에는 이미지의 열 수인 너비 사양이 있고, 그 다음에는 공백이 있고, 그 다음에는 이미지의 행 수인 높이 사양이 있습니다. 높이 사양 다음에는 공백이 있고, 그 다음에 픽셀 데이터가 시작됩니다.
ASCII PBM 파일의 픽셀 데이터는 일련의 '0'과 '1'로 구성되며, 각 '0'은 흰색 픽셀을 나타내고 각 '1'은 검정색 픽셀을 나타냅니다. 픽셀은 행으로 배열되며, 각 행의 픽셀은 새 줄에 있습니다. 2자 시퀀스 내부를 제외하고 픽셀 데이터의 어느 곳에서나 공백을 사용할 수 있습니다(시퀀스의 두 문자 사이에는 허용되지 않음). width*height 비트를 읽은 후에 파일의 끝에 도달합니다.
반면에 바이너리 PBM 포맷은 'P1' 대신 'P4'의 매직 넘버로 시작합니다. 매직 넘버 다음에는 픽셀 데이터가 시작될 때까지 파일의 포맷이 ASCII 버전과 동일합니다. 바이너리 픽셀 데이터는 바이트로 압축되며, 각 바이트의 최상위 비트(MSB)는 가장 왼쪽 픽셀을 나타내고, 각 행의 픽셀은 마지막 바이트를 채우는 데 필요한 만큼 패딩됩니다. 패딩 비트는 중요하지 않으며 값은 무시됩니다.
바이너리 포맷은 픽셀당 최소 8바이트(픽셀당 1자와 공백)를 사용하는 ASCII 포맷과 달리 8개 픽셀을 나타내는 데 전체 바이트를 사용하기 때문에 공간 효율성이 더 높습니다. 그러나 바이너리 포맷은 사람이 읽을 수 없으며 이미지를 표시하거나 편집하려면 PBM 포맷을 이해하는 프로그램이 필요합니다.
프로그래밍 방식으로 PBM 파일을 만드는 것은 비교적 간단합니다. C와 같은 프로그래밍 언어에서는 쓰기 모드로 파일을 열고, 적절한 매직 넘버를 출력하고, 공백으로 구분된 ASCII 숫자로 너비와 높이를 쓰고, 픽셀 데이터를 출력합니다. ASCII PBM의 경우 픽셀 데이터는 적절한 줄 바꿈으로 '0'과 '1'의 시퀀스로 쓸 수 있습니다. 바이너리 PBM의 경우 픽셀 데이터를 바이트로 압축하고 바이너리 모드로 파일에 써야 합니다.
PBM 파일을 읽는 것도 간단합니다. 프로그램은 매직 넘버를 읽어 포맷을 확인하고, 공백을 건너뛰고, 너비와 높이를 읽고, 더 많은 공백을 건너뛰고, 픽셀 데이터를 읽습니다. ASCII PBM의 경우 프로 그램은 한 번에 한 문자씩 읽고 픽셀 값으로 해석할 수 있습니다. 바이너리 PBM의 경우 프로그램은 바이트를 읽고 픽셀 값을 얻기 위해 개별 비트로 압축 해제해야 합니다.
PBM 포맷은 압축이나 인코딩을 지원하지 않으므로 파일 크기는 이미지의 픽셀 수에 정비례합니다. 이로 인해 고해상도 이미지의 경우 매우 큰 파일이 생성될 수 있습니다. 그러나 포맷이 간단하기 때문에 이미지 처리에 대해 배우거나, 파일 크기보다 이미지 충실도가 더 중요한 상황에서 사용하거나, 이미지 변환 프로세스에서 중간 포맷으로 사용하기에 이상적입니다.
PBM 포맷의 장점 중 하나는 간단성과 조작이 쉬운 점입니다. 예를 들어, PBM 이미지를 반전하려면(모든 검정색 픽셀을 흰색으로, 그 반대의 경우도 마찬가지로) 픽셀 데이터에서 모든 '0'을 '1'로, 모든 '1'을 '0'으로 바꾸면 됩니다. 이 작업은 간단한 텍스트 처리 스크립트나 프로그램으로 수행할 수 있습니다. 마찬가지로 회전이나 미러링과 같은 다른 기본 이미지 작업도 간단한 알고리즘으로 구현할 수 있습니다.
간단함에도 불구하고 PBM 포맷은 일반적인 이미지 저장이나 교환에는 널리 사용되지 않습니다. 이는 주로 압축이 부족하기 때문이며, 이로 인해 대용량 이미지를 저장하거나 대역폭이 문제가 될 수 있는 인터넷을 통해 사용하기에는 비효율적입니다. JPEG, PNG, GIF와 같은 더 최신 포맷은 다양한 형태의 압축을 제공하며 이러한 목적에 더 적합합니다. 그러나 PBM 포맷은 여전히 일부 맥락에서 사용되며, 특히 소프트웨어 개발의 간단한 그래픽과 이미지 처리 개념에 대한 교육 도구로 사용됩니다.
PBM 포맷을 포함하는 Netpbm 제품군은 PBM, PGM, PPM 파일을 조작하기 위한 도구 모음을 제공합니다. 이러한 도구를 사용하면 Netpbm 포맷과 다른 인기 있는 이미지 포맷 간에 변환할 수 있으며, 크기 조정, 자르기, 색상 조작과 같은 기본 이미지 처리 작업도 수행할 수 있습니다. 이 제품군은 새로운 기능을 추가하기 위한 간단한 인터페이스를 갖춘 확장성이 뛰어나도록 설계되었습니다.
결론적으로 PBM 이미지 포맷은 단색 비트맵 이미지를 저장하기 위한 간단하고 불필요한 파일 포맷입니다. 간단하기 때문에 이해하고 조작하기 쉽고, 교육 목적이나 간단한 이미지 처리 작업에 유리할 수 있습니다. 압축이 부족하고 그로 인해 파일 크기가 커서 모든 애플리케이션에 적합하지는 않지만, 강점이 가장 유익한 특정 맥락에서는 여전히 유용한 포맷입니다. PBM 포맷은 Netpbm 제품군의 나머지 부분과 함께 기본 이미지 처리 및 포맷 변환 작업을 수행하는 사람들에게 계속해서 가치 있는 도구가 될 것입니다.
이 변환기는 완전히 브라우저에서 작동합니다. 파일을 선택하면 메모리에 읽혀 선택한 형식으로 변환됩니다. 그 후 변환된 파일을 다운로드할 수 있습니다.
변환은 즉시 시작되며 대부분의 파일은 1초 이내에 변환됩니다. 큰 파일은 더 오래 걸릴 수 있습니다.
파일은 우리 서버에 업로드되지 않습니다. 브라우저에서 변환되고 변환된 파일이 다운로드됩니다. 우리는 파일을 볼 수 없습니다.
JPEG, PNG, GIF, WebP, SVG, BMP, TIFF 등 모든 이미지 형식을 변환할 수 있습니다.
이 변환기는 완전히 무료이며 항상 무료입니다. 브라우저에서 작동하기 때문에 서버 비용이 들지 않아서 고객님께 비용을 청구할 필요가 없습니다.
네! 원하는 만큼 많은 파일을 동시에 변환할 수 있습니다. 파일을 추가할 때 여러 파일을 선택하세요.