DOKK / manpages / debian 11 / manpages-pl / pbm.5.pl
pbm(5) File Formats Manual pbm(5)

pbm - przenośny format bitmap

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.
  • Linia nie powinna być dłuższa 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ę.

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.

libpbm(3),pnm(5),pgm(5),ppm(5)

Copyright (C) 1989, 1991 Jef Poskanzer.

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl> i Robert Luberda <robert@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@lists.sourceforge.net.

5 marca 2000