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 są: Przemek Borys <pborys [AT] dione.pl> i Robert Luberda <robert [AT] debian.org>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres <manpages-pl-list [AT] lists.net>.