table of contents
Format PBM(5) | File Formats Manual | Format PBM(5) |
NAZWA¶
pbm - dwupoziomowy format obrazu Netpbm
OPIS¶
Program jest częścią Netpbm(1).
Format PBM jest najmniejszym wspólnym mianownikiem dla monochromatycznego formatu pliku. Jest wspólnym językiem większej rodziny filtrów konwersji obrazów bitmapowych. 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.
Nazwa „PBM” jest akronimem, pochodzącym od słów „Przenośna BitMapa”.
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.
UKŁAD¶
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.
- Pojedynczy znak białej spacji (zwykle znak nowego wiersza).
- 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.
Wiersz jest poziomy. Kolumna jest pionowa. Piksele w obrazie są kwadratowe i ciągłe.
- Przed znakiem białej spacji, który rozgranicza raster, wszelkie znaki zaczynające się od „#” do następnego powrotu karetki lub znaku nowego wiersza są komentarzem i są ignorowane. Proszę zauważyć, że jest to dość niekonwencjonalne, ponieważ komentarz może znajdować się w środku czegoś, co zwykło się uważać za token. Oznacza to również, że jeśli komentarz występuje zaraz przed rastrem, znak nowego wiersza na końcu komentarza nie jest wystarczający, aby rozgraniczyć raster.
Wszystkie znaki, o których tu mowa są zakodowane w ASCII. Znak nowego wiersza, odnosi się do znaku nowego wiersza ASCII (LF). Biały znak to spacja, powrót karetki (CR), znak nowego wiersza (LF), tabulator (TAB), tabulator pionowy (VT) lub wysuw strony (FF) — tj. to, co funkcja isspace() standardu C ANSI nazywa białym znakiem.
Prosty PBM¶
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.
Program Netpbm tworzy domyślnie Surowy format PBM zamiast Prostego PBM, lecz opcja ogólna -plain wybiera Prosty PBM.
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.
-
Linia nie powinna być dłuższa niż 70 znaków.
Oto przykład małego obrazu w prostym 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
Na końcu każdego wiersza znajduje się znak nowego wiersza.
Program pnmtoplainpnm umożliwia wygenerowanie Prostego 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ę.
IDENTYFIKATOR INTERNETOWY (MIME)¶
Dla formatu PBM nie zarejestrowano internetowego identyfikatora formatu danych (Internet Media Type — MIME) w IANA, lecz konwencjonalna jest wartość image/x-portable-bitmap.
Proszę zauważyć, że image/x-portable-anymap dotyczy też PNM.
NAZWA PLIKU¶
Nie ma wymagań odnośnie nazwy pliku PBM, lecz przyjęło się rozszerzenie „.pbm”. Konwencjonalne jest również „pnm” w przypadkach, gdy nie jest wygodne rozróżnianie pomiędzy danymi podformatami PNM.
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¶
libnetpbm(3) , pnm(5) , pgm(5) , ppm(5) , pam(5) , programy, które przetwarzają PBM
ŹRÓDŁO DOKUMENTU¶
Niniejszą stronę podręcznika wygenerowano za pomocą narzędzia Netpbm „makeman” ze źródeł HTML. Główna dokumentacja jest dostępna pod adresem
TŁUMACZENIE¶
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>
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 listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.
27 listopada 2013 | dokumentacja netpbm |