NAZWA¶
pbm - 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.
ZOBACZ TAKŻE¶
libpbm(3),
pnm(5),
pgm(5),
ppm(5)
AUTOR¶
Copyright (C) 1989, 1991 Jef Poskanzer.
TŁUMACZENIE¶
Autorami polskiego tłumaczenia niniejszej strony podręcznika man
są: Przemek Borys (PTM) <pborys@dione.ids.pl> i Robert Luberda
<robert@debian.org>.
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.