128 191 178 plików
4,6 Trustpilot
od 2013

Informacje o plikach PBM

0.0/5(0 głosy)

PBM to prawdopodobnie najprostszy format obrazu na świecie. Składa się wyłącznie z cyfr 0 i 1, a każda z nich odpowiada jednemu pikselowi. Wiersz i kolumna w tekście określają pozycję na obrazie. Dzięki temu obrazy można tworzyć nawet za pomocą edytora tekstu. To prawie tak, jakby malować ołówkiem na papierze w kratkę. PBM nie obsługuje kompresji, kanałów alfa ani kolorów. Nie obsługuje nawet skali szarości. Może po prostu narysować piksel (1) albo nie (0).

TLDR:

Pliki PBM są częścią większej rodziny formatów. Ten format i jego „rodzeństwo” są nadal w użyciu, ale nie nadają się zbyt dobrze do udostępniania i długoterminowej archiwizacji. Są duże, obsługuje je niewiele programów, ale są bardzo elastyczne i wydajne. Kto znajdzie plik PBM, prawdopodobnie ma w rękach produkt pośredni lub obraz stworzony do celów dydaktycznych. Format PBM bardzo dobrze nadaje się bowiem do prezentacji, jest praktycznie oczywisty.

Historia plików PBM

PBM został wymyślony w latach 80. przez Jefa Poskanzera, programistę z Berkeley, który chciał rozwiązać prosty problem: wysyłanie obrazów pocztą elektroniczną. W latach 80. poczta elektroniczna nie była jeszcze tak rozwinięta jak dzisiaj. Niezawodnie można było wysyłać tylko znaki ASCII, a pliki binarne, takie jak obrazy, często ulegały uszkodzeniu podczas przesyłania. Poskanzer zaprojektował więc PBM, format obrazu, który rozwiązał właśnie ten problem.

Budowa techniczna

Obraz PBM w wersji zwykłej (P1) składa się dokładnie z trzech części: liczby magicznej, wymiarów i samych danych pikseli. Opcjonalnie można używać komentarzy, np. dotyczących treści.

Składnik Przykład Znaczenie
Liczba magiczna P1 Plain PBM (wersja ASCII)
Komentarz # mein bild Opcjonalnie, z # wstępem
Szerokość Wysokość 24 7 Wymiary w pikselach
Dane rastrowe 0 1 1 0 ... 1 = czarny, 0 = biały

Poniższy przykład przedstawia kompletny obraz z dokumentacji:

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

(cyfry 0 są nieco ciemniejsze wyłącznie w celu lepszej wizualizacji)

Pomiędzy zerami i jedynkami wyraźnie widać tekst FEEP. PBM odpowiada zatem binarnemu kodowi ASCII ;).

Plain vs. Raw: P1 i P4

Poskanzer wprowadził później wersję binarną i uczynił ją standardowym formatem wyjściowym narzędzi Netpbm. Wersja zwykła (P1) pojawiła się jako pierwsza, ale została wycofana ze względu na znacznie większe zapotrzebowanie na miejsce („lavishly wasteful” – „niezwykle marnotrawna”).

Właściwości Plain PBM (P1) Raw PBM (P4)
Dane pikselowe Znaki ASCII 0 i 1 bity, 8 na bajt
Czytelne dla człowieka Tak, w całości Tylko nagłówek
Miejsce na dysku na piksel ~2 bajty (znak + spacja) 1/8 bajta (1 bit)
Maks. długość wiersza Zalecane 70 znaków Bez ograniczeń
Obrazy na plik Dokładnie 1 Możliwe jest więcej (od lipca 2000 r.)

Obecnie cała rodzina PBM, a w szczególności PPM, jest często wykorzystywana jako format pośredni. W najprostszym i najkrótszym ze wszystkich przypadków zastosowań plik ten istnieje jedynie w potoku między dwoma programami, a więc tylko na czas samego wykonywania. To prowadzi nas do mocnych stron tego formatu:

Zalety plików PBM

  • Brak zależności: brak dekodera, brak biblioteki. Kilka linii kodu w języku C, Python lub shell wystarczy do odczytu i zapisu.
  • Filozofia Uniksa: narzędzia PBM to filtry. Łączy się je ze sobą za pomocą potoku: cat bild.pbm | pbmtopgm | ppmtojpeg > out.JPG. Ponad 330 programów w pakiecie Netpbm działa w ten sposób.
  • Dydaktyka: Kto chce zrozumieć przetwarzanie obrazu (nie edycję obrazu), powinien idealnie zacząć od PBM.
  • Solidność: brak uszkodzonego nagłówka, brak uszkodzonego fragmentu. Zawartość pliku jest tak niewielka, że prawie nic nie może pójść nie tak. A jeśli jednak coś się zepsuje, obraz pozostaje czytelny.

Rodzina PBM

PBM nie jest jedynym formatem. Pod koniec 1988 roku Poskanzer rozszerzył rodzinę o PGM (Portable Gray Map, skala szarości, liczba magiczna P2/P5) oraz PPM (Portable Pixel Map, kolory RGB, P3/P6). Razem tworzą one PNM: Portable Any Map. Później pojawił się jeszcze PAM (P7) jako uniwersalne rozszerzenie.

PBM jest fundamentem, a także „najbardziej radykalnym” przedstawicielem rodziny i oferuje tylko dwie możliwości: światło włączone lub wyłączone – piksel obecny lub nieobecny. Bez kolorów, bez przezroczystości, bez odcieni szarości. Tylko czarno-biały obraz, który można odczytać bezpośrednio w kodzie źródłowym.

Pbmplus i Netpbm

Poskanzer zajmował się Pbmplus aż do jego ostatniej publikacji pod koniec 1991 roku. Potem projekt przestał być rozwijany. W 1993 roku powstał Netpbm jako fork społecznościowy, w zasadzie przepakowanie Pbmplus z poprawkami błędów i rozszerzeniami od programistów z całego świata. Od 1999 roku Netpbm jest utrzymywany przez Bryana Hendersona i obecnie znajduje się praktycznie w każdej dystrybucji Linuksa.

PBM jako takie odeszło do lamusa. Serwery pocztowe bez problemu radzą sobie z plikami JPG, PNG, a nawet filmami. Jednak „kolorowa” wersja ppm jest używana na co dzień, w potokach, na systemach Linux. PBM pozostaje w sferze edukacyjnej: można je świetnie wyjaśnić, świetnie zrozumieć i – tak proste jest PBM – narysować na papierze w kratkę.

Źródła

Netpbm Specyfikacja formatu PBM
Netpbm Historia – bardzo warty przeczytania artykuł o historii pbm
Wiki: Jef Poskanzer

0.0/5(0 głosy)

Ostatnia aktualizacja: 6. kwietnia 2026 przez Sören z doświadczeniem ponad 128 191 172 przekonwertowanych plików od 2013 roku.

Konwertuj, otwieraj i edytuj pliki PBM

Szczegółowe informacje o plikach PBM

Oprogramowanie do otwierania plików PBM
Oprogramowanie do edycji plików PBM
Typ MIME dla PBM

Wszystkie konwertery od lub do PBM

Brak komentarzy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *


Umieść pliki tutaj...