OPIS
Przenośny format bitmapowy to najprostszy format monochromatyczny. Jest wspólnym językiem większej rodziny filtrów konwersji bitmap. Ponieważ format nie przejmuje się wydajnością, jest prosty i wystarczająco ogólny, tak że każdy może tworzyć programy konwertujące bitmapy z lub do innych formatów graficznych albo przetwarzające obrazy.Nie jest to format, którego ktokolwiek normalnie by użył do przechowywania pliku lub do przesłania go do kogoś innego --- jest zbyt drogi i mało wyrazisty do tego. Jest to po prostu format przejściowy. Najczęściej jest używany w potokach między dwoma programami.
Definicja formatu jest następująca:
Plik PBM składa się z sekwencji jednego lub więcej obrazów PBM. Nie występują żadne inne dane, separatory i wyrównania przed obrazami, po nich ani między nimi.
W skład każdego obrazu PBM wchodzą:
- -
- "Numer magiczny", identyfikujący rodzaj pliku. Numerem magicznym pliku pbm są dwa znaki: "P4".
- -
- Biała spacja (spacje, tabulacje, CR, LF).
- -
- Szerokość obrazu pikselach, sformatowana jako dziesiętne znaki ASCII.
- -
- Biała spacja.
- -
- Wysokość obrazu w pikselach, znów jako dziesiętne znaki ASCII.
- -
- Znak nowej linii lub inny znak białej spacji.
- -
- Raster o liczbie wierszy określonej przez wysokość obrazu, od góry do dołu. Każdy wiersz składa się z bitów w liczbie zadanej przez szerokość obrazu. Bity są pakowane po 8 w bajt. Ostatni bajt w wierszu jest wypełniony nieznaczącymi bitami. Każdy bit reprezentuje piksel: 1 to czarny, a 0 to biały. Porządek pikseli jest od lewej do prawej. Porządek ich przechowywania w każdym bajcie pliku jest od najbardziej znaczącego bitu do najmniej znaczącego. Porządek bajtów w pliku jest od początku pliku do końca pliku.
- -
- Znaki od "#" do znaku końca linii, przed linią szerokości/wysokości są ignorowane jako komentarze.
Istnieje inna wersja formatu PBM, nawet jeszcze bardziej uproszczona, jeszcze bardziej nieprzejmująca się zajmowaną przestrzenią niż PBM, zwana "prostym PBM". Prosty PBM w zasadzie pojawił się wcześniej, ale nawet jego twórca nie mógł znieść marnowania zasobów i po jakimś czasie wymyślił to co dziś jest znane jako zwykły format PBM. Ale plik w formacie prostego PBM jest tak nadmiarowy, tak przesadzony, że nie ma możliwości jego uszkodzenia. Można wysyłać go przez nawet najbardziej liberalny system pocztowy (co było oryginalnym celem formatu PBM), a plik i tak będzie wciąż czytelny. Można zamienić tuzin przypadkowo wybranych bitów, a potem z łatwością odtworzyć oryginalny obraz. Nie ma potrzeby definiowania tego formatu tutaj, ponieważ łatwo można go rozszyfrować przez analizowanie.
Różnice to:
- -
- Plik zawiera dokładnie jeden obraz.
- -
- "Magiczny numer" to "P1" zamiast "P4".
- -
- Każdy piksel w rastrze jest reprezentowany przez bajt zawierający znaki ASCII: "1" lub "0", oznaczające odpowiednio kolor czarny lub biały. Koniec wiersza nie zawiera bitów wyrównania.
- -
- Biała spacja w sekcji rastra jest ignorowana.
- -
- Po zakończeniu sekcji rastra można podać dowolne śmieci, jakie tylko się chce, pod warunkiem, że zaczynają się od białej spacji.
- -
- Linie nie powinny być dłuższe niż 70 znaków.
Oto przykład małej bitmapy w czystym formacie PBM:
P1 # feep.pbm 24 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 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 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Program pnmtoplainpnm umożliwia wygenerowanie czystego formatu PBM z regularnego formatu PBM (tylko pierwszy obraz).
Programy, odczytujące ten format powinny być jak najwyrozumialsze, przyjmując wszystko, co z daleka wygląda na bitmapę.
ZGODNOŚĆ
Przed lipcem 2000 roku plik PBM mógł zawierać tylko jeden obraz. W wyniku tego większość narzędzi przetwarzających pliki PBM ignoruje (nie czyta) danych po pierwszym obrazie.
AUTOR
Copyright (C) 1989, 1991 Jef Poskanzer.TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Przemek Borys (PTM) <[email protected]> i Robert Luberda <[email protected]>.Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 10.0 oryginału.