PBM (Portable Bitmap) je nejspíš nejjednodušší obrázkový formát, který se dodnes běžně používá: jeden bit na pixel, černá nebo bílá, a před tím hlavička o pár znacích. Patří do rodiny Netpbm spolu s PGM pro odstíny šedi a PPM pro barvy. Lidé si soubory PBM posílají málokdy, vyrábějí je programy: skenovací nástroje v Linuxu, OCR a faxové řetězce, vektorizér potrace, školní úlohy z programování nebo skripty, které prostě potřebovaly formát, jaký se zapíše nejsnáz.
Původ
Jef Poskanzer navrhl PBM v 80. letech tak, aby obrázek prošel uvnitř e-mailu, v době, kdy přílohy ještě neexistovaly. Proto je původní varianta čistý text ASCII. V roce 1988 vydal sadu převodníků Pbmplus a do konce téhož roku přidal formáty PGM a PPM. Poslední vydání Pbmplus vyšlo 10. prosince 1991. Od roku 1993 projekt pokračuje jako Netpbm, který od roku 1999 spravuje Bryan Henderson. Norma ISO ani u IANA registrovaný typ MIME neexistují, závazná je specifikace Netpbm a obvyklý typ je image/x-portable-bitmap.
Jak PBM funguje
- Textové PBM (P1) ukládá každý pixel jako znak 0 nebo 1. Text
P1 3 2 1 0 1 0 1 0je úplný platný obrázek 3 × 2 pixely. Řádek smí mít nejvýš 70 znaků. - Binární PBM (P4) skládá osm pixelů do bajtu a každý řádek doplní na celé bajty. Hlavička zůstává textová: magické číslo, šířka, výška, případně komentáře za znakem
#. - 1 znamená černou, 0 bílou. Většina ostatních formátů včetně WBMP to má obráceně. Vlastní dekodér, který na to zapomene, vyrobí negativ.
- Žádná komprese, paleta, údaj o dpi, metadata ani průhlednost. Stránka A4 při 300 dpi (2480 × 3508 pixelů) zabere jako P4 asi 1,1 MB, jako P1 nejméně osmkrát víc.
- Od roku 2000 smí binární soubor obsahovat několik obrázků za sebou, většina programů ale přečte jen první.
Jak otevřít soubor PBM
- Windows: IrfanView, XnView MP, GIMP nebo Photoshop. Vestavěné Fotky PBM nepřečtou.
- macOS: GIMP nebo XnView MP.
- Linux: většina prohlížečů obrázků v GNOME i KDE formáty Netpbm čte přímo, na příkazové řádce je převede balík Netpbm (
pnmtopng). - Textový soubor P1 otevřete i v libovolném textovém editoru a uvidíte v něm nuly a jedničky.
Časté potíže s PBM
Obrázek PBM je inverzní (negativ)
Program nebo váš kód bere 1 jako bílou. V PBM je 1 černá.
Z fotky jsou po převodu do PBM černé fleky
PBM zná jen dvě hodnoty. Náš převodník obrázek převede do šedi, roztáhne kontrast a rozdělí ho na hranici 50 % jasu, bez ditheringu. Pro text, podpisy, perokresbu a QR kódy to funguje dobře, pro fotografie špatně. Fotky nechte v PNG, případně použijte šedotónové PGM.
Soubor .pbm začíná P2, P5 nebo P6
Jde o šedotónová nebo barevná data se špatnou příponou, což se stává u nástrojů, které zapisují libovolný typ Netpbm. Náš převodník přečte všechny varianty Netpbm bez ohledu na příponu.
Jiný program odmítá PBM z mého kódu
Obvyklé příčiny: chybí mezera nebo konec řádku za výškou, řádky v P4 nejsou doplněné na celé bajty, nebo je komentář až uvnitř obrazových dat.
Převod PBM
Převod PBM do PNG, TIFF nebo GIF je bezeztrátový a výsledek otevře každý program. Převod PBM do PDF je nejrychlejší cesta, jak ze skenu udělat dokument. Převod PBM do SVG obkreslí pixely vektorovými křivkami. Mimochodem, když u nás převádíte do SVG jakýkoli rastrový obrázek, převodník z něj nejdřív udělá černobílé PBM a teprve to obkreslí. Opačným směrem je převod do PBM spolehlivý způsob, jak vynutit čistou černou a bílou, třeba před přípravou 1bitového loga pro tiskárnu etiket ve formátu PCX.
PBM v kostce
| Autor | Jef Poskanzer, dnes projekt Netpbm |
|---|---|
| Vznik | 80. léta; Pbmplus 1988, Netpbm 1993 |
| Specifikace | dokumentace Netpbm, bez normy ISO |
| Typ | rastrový obrázek, 1 bit na pixel |
| Komprese | žádná |
| Varianty | P1 (text), P4 (binární) |
| Typické použití | skenování a OCR, vektorizace, výuka, skripty |
Specifikace a historie (anglicky): specifikace formátu PBM a historie projektu Netpbm.