Format PBM (Portable Bitmap) jest jednym z najprostszych i najwcześniejszych formatów plików graficznych używanych do przechowywania obrazów monochromatycznych. Jest częścią pakietu Netpbm, który obejmuje również PGM (Portable GrayMap) dla obrazów w skali szarości i PPM (Portable PixMap) dla obrazów kolorowych. Format PBM został zaprojektowany tak, aby był niezwykle łatwy do odczytu i zapisu w programie oraz aby był jasny i jednoznaczny. Nie jest przeznaczony do samodzielnego użytku, lecz raczej jako najmniejszy wspólny mianownik do konwersji między różnymi formatami obrazów.
Format PBM obsługuje tylko obrazy czarno-białe (1-bitowe). Każdy piksel na obrazie jest reprezentowany przez pojedynczy bit – 0 dla bieli i 1 dla czerni. Prostota formatu sprawia, że jest łatwy do manipulowania za pomocą podstawowych narzędzi do edycji tekstu lub języków programowania bez potrzeby korzystania ze specjalistycznych bibliotek przetwarzania obrazu. Jednak ta prostota oznacza również, że pliki PBM mogą być większe niż bardziej zaawansowane formaty, takie jak JPEG lub PNG, które wykorzystują algorytmy kompresji w celu zmniejszenia rozmiaru pliku.
Istnieją dwie odmiany formatu PBM: format ASCII (zwykły), znany jako P1, oraz format binarny (surowy), znany jako P4. Format ASCII jest czytelny dla człowieka i można go utworzyć lub edytować za pomocą prostego edytora tekstu. Format binarny nie jest czytelny dla człowieka, ale jest bardziej oszczędny pod względem miejsca i szybszy do odczytu i zapisu dla programów. Pomimo różnic w przechowywaniu, oba formaty reprezentują ten sam typ danych obrazu i można je konwertować między sobą bez utraty informacji.
Struktura pliku PBM w formacie ASCII rozpoczyna się od dwubajtowego magicznego numeru, który identyfikuje typ pliku. Dla formatu PBM ASCII jest to „P1”. Po magicznym numerze znajduje się spacja (odstępy, znaki TAB, CR, LF), a następnie specyfikacja szerokości, która jest liczbą kolumn na obrazie, po której następuje więcej spacji, a następnie specyfikacja wysokości, która jest liczbą wierszy na obrazie. Po specyfikacji wysokości znajduje się więcej spacji, a następnie rozpoczynają się dane pikseli.
Dane pikseli w pliku ASCII PBM składają się z serii „0” i „1”, przy czym każde „0” reprezentuje biały piksel, a każde „1” reprezentuje czarny piksel. Piksele są ułożone w wierszach, przy czym każdy wiersz pikseli znajduje się w nowym wierszu. Spacje są dozwolone w dowolnym miejscu w danych pikseli, z wyjątkiem sekwencji dwuznakowej (nie są dozwolone między dwoma znakami sekwencji). Koniec pliku jest osiągany po odczytaniu szerokość*wysokość bitów.
Natomiast binarny format PBM zaczyna się od magicznego numeru „P4” zamiast „P1”. Po magicznym numerze format pliku jest taki sam jak w wersji ASCII, aż do momentu rozpoczęcia danych pikseli. Binarne dane pikseli są pakowane w bajty, przy czym najbardziej znaczący bit (MSB) każdego bajtu reprezentuje najbardziej wysunięty na lewo piksel, a każdy wiersz pikseli jest wypełniany w razie potrzeby, aby wypełnić ostatni bajt. Bity wypełnienia nie są istotne i ich wartości są ignorowane.
Format binarny jest bardziej oszczędny pod względem miejsca, ponieważ wykorzystuje pełny bajt do reprezentowania ośmiu pikseli, w przeciwieństwie do formatu ASCII, który wykorzystuje co najmniej osiem bajtów (jeden znak na piksel plus spacja). Jednak format binarny nie jest czytelny dla człowieka i wymaga programu, który rozumie format PBM, aby wyświetlić lub edytować obraz.
Tworzenie pliku PBM programowo jest stosunkowo proste. W języku programowania takim jak C można otworzyć plik w trybie zapisu, wyprowadzić odpowiedni magiczny numer, zapisać szerokość i wysokość jako liczby ASCII oddzielone spacją, a następnie wyprowadzić dane pikseli. W przypadku ASCII PBM dane pikseli można zapisać jako serię „0” i „1” z odpowiednimi podziałami wierszy. W przypadku binarnego PBM dane pikseli muszą być spakowane w bajty i zapisane do pliku w trybie binarnym.
Odczytywanie pliku PBM jest również proste. Program odczytuje magiczny numer, aby określić format, pomija spacje, odczytuje szerokość i wysokość, pomija więcej spacji, a następnie odczytuje dane pikseli. W przypadku ASCII PBM program może odczytywać znaki jeden po drugim i interpretować je jako wartości pikseli. W przypadku binarnego PBM program musi odczytywać bajty i rozpakowywać je na poszczególne bity, aby uzyskać wartości pikseli.
Format PBM nie obsługuje żadnej formy kompresji ani kodowania, co oznacza, że rozmiar pliku jest wprost proporcjonalny do liczby pikseli na obrazie. Może to skutkować bardzo dużymi plikami w przypadku obrazów o wysokiej rozdzielczości. Jednak prostota formatu sprawia, że jest idealny do nauki przetwarzania obrazu, do użytku w sytuacjach, gdy wierność obrazu jest ważniejsza niż rozmiar pliku, lub do użytku jako format pośredni w procesach konwersji obrazu.
Jedną z zalet formatu PBM jest jego prostota i łatwość manipulowania nim. Na przykład, aby odwrócić obraz PBM (zamienić wszystkie czarne piksele na białe i odwrotnie), można po prostu zastąpić wszystkie „0” na „1” i wszystkie „1” na „0” w danych pikseli. Można to zrobić za pomocą prostego skryptu lub programu do przetwarzania tekstu. Podobnie inne podstawowe operacje na obrazach, takie jak obracanie lub odbijanie lustrzane, można zaimplementować za pomocą prostych algorytmów.
Pomimo swojej prostoty format PBM nie jest szeroko stosowany do ogólnego przechowywania lub wymiany obrazów. Wynika to przede wszystkim z braku kompresji, co czyni go nieefektywnym do przechowywania dużych obrazów lub do użytku w Internecie, gdzie przepustowość może być problemem. Nowocześniejsze formaty, takie jak JPEG, PNG i GIF, oferują różne formy kompresji i są lepiej przystosowane do tych celów. Jednak format PBM jest nadal używany w niektórych kontekstach, szczególnie w przypadku prostych grafik w rozwoju oprogramowania oraz jako narzędzie dydaktyczne do nauki koncepcji przetwarzania obrazu.
Pakiet Netpbm, który obejmuje format PBM, zapewnia kolekcję narzędzi do manipulowania plikami PBM, PGM i PPM. Narzędzia te umożliwiają konwersję między formatami Netpbm a innymi popularnymi formatami obrazów, a także podstawowe operacje przetwarzania obrazu, takie jak skalowanie, przycinanie i manipulowanie kolorami. Pakiet jest zaprojektowany tak, aby był łatwo rozszerzalny, z prostym interfejsem do dodawania nowych funkcji.
Podsumowując, format obrazu PBM jest prostym, bez zbędnych dodatków formatem pliku do przechowywania monochromatycznych obrazów bitmapowych. Jego prostota sprawia, że jest łatwy do zrozumienia i manipulowania, co może być korzystne w celach edukacyjnych lub w przypadku prostych zadań przetwarzania obrazu. Chociaż nie nadaje się do wszystkich zastosowań ze względu na brak kompresji i wynikające z tego duże rozmiary plików, pozostaje użytecznym formatem w określonych kontekstach, w których jego zalety są najbardziej korzystne. Format PBM, wraz z resztą pakietu Netpbm, nadal jest cennym narzędziem dla osób pracujących z podstawowym przetwarzaniem obrazu i konwersją formatów.
Ten konwerter działa całkowicie w Twojej przeglądarce. Kiedy wybierasz plik, jest on wczytywany do pamięci i konwertowany na wybrany format. Następnie możesz pobrać skonwertowany plik.
Konwersje zaczynają się natychmiast, a większość plików jest konwertowana w mniej niż sekundę. Większe pliki mogą wymagać więcej czasu.
Twoje pliki nigdy nie są przesyłane na nasze serwery. Są konwertowane w Twojej przeglądarce, a następnie pobierany jest skonwertowany plik. Nigdy nie widzimy Twoich plików.
Obsługujemy konwersję między wszystkimi formatami obrazów, w tym JPEG, PNG, GIF, WebP, SVG, BMP, TIFF i więcej.
Ten konwerter jest całkowicie darmowy i zawsze będzie darmowy. Ponieważ działa w Twojej przeglądarce, nie musimy płacić za serwery, więc nie musimy Cię obciążać opłatami.
Tak! Możesz konwertować tyle plików, ile chcesz na raz. Wystarczy wybrać wiele plików podczas ich dodawania.