mały|350px|Program w C++ tworzący plik PGM PPM (), PBM (ang. ) oraz PGM (ang. ) – formaty zapisu grafiki rastrowej, używane głównie do wymiany danych graficznych między różnymi narzędziami graficznymi. Wszystkie trzy formaty określane są wspólnie jako PNM (ang. ) i oznaczają:
PBM zawiera obraz czarno-biały – 1 bit na piksel; PGM zawiera obraz w odcieniach szarości – 8 bitów na piksel; PPM zawiera obraz kolorowy (RGB) – maksymalnie 24 bity na piksel w trybie binarnym i do 48 bitów w trybie tekstowym.
Opis formatu Przykładowy tekstowy plik PBM przedstawiający literę J:
P1 # komentarz 6 10 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Plik zawiera kolejno: nagłówek: P1 lub P4 dla PBM P2 lub P5 dla PGM P3 lub P6 dla PPM szerokość wysokość maksymalną wartość składową koloru (tylko PPM i PGM) wartości kolejnych pikseli (lub ich kolorów składowych dla PPM) zapisane tekstowo (dla P1, P2, P3) lub binarnie (dla P4, P5, P6).
Obowiązuje też kilka zasad odnośnie do zapisu: Wszystkie wartości zapisane są dziesiętnie i oddzielone dowolną liczbą znaków niedrukowalnych (spacja, tabulator, znak nowej linii). Znaki od „#” do końca linii są pomijane. Linie nie powinny być dłuższe niż 70 znaków. Dane binarne muszą znajdować się zaraz za rozmiarami obrazu (oddzielone tylko jednym znakiem niedrukowalnym). Wartości kolorów składowych występują w kolejności: czerwony, zielony, niebieski.
Starsze programy mogą nie odczytywać prawidłowo plików PNM o maksymalnej wartości składowego koloru większej niż 255 (48-bitowych) zapisanych binarnie.
Netpbm Netpbm to zestaw narzędzi do wsadowej konwersji i przetwarzania grafiki, operujący na plikach PNM. Pakiet składa się z wielu programów wykonujących proste czynności np.: jpegtopnm – konwertuje pliki JPEG na pliki PNM pnmtopng – konwertuje pliki PNM na pliki PNG pnmscale – skaluje pliki PNM pnmrotate – obraca pliki PNM
Aby utworzyć miniaturę pliku JPEG wystarczy wydać polecenie:
jpegtopnm plik.jpeg | pnmscale -xsize 64 | pnmtojpeg > minatura_plik.jpeg
Z pomocą powłoki bash można bardzo prosto utworzyć miniatury wszystkich plików JPEG w bieżącym katalogu: for plik in *.jpeg *.jpg ; do jpegtopnm ${plik} | pnmscale -xsize 64 | pnmtojpeg > minatura_${plik} ; done Zobacz też
BMP PNG XPM (informatyka) RGB ImageMagick
Linki zewnętrzne Strona domowa pakietu Netpbm Specyfikacje formatów: PBM PGM PPM PAM PNM
Kategoria:Formaty plików graficznych