pbm(5) przenośny format bitmap

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.