Format PBM(5) File Formats Manual Format PBM(5) NAZWA pbm - dwupoziomowy format obrazu Netpbm OPIS Program jest czescia Netpbm(1). Format PBM jest najmniejszym wspolnym mianownikiem dla monochromatycznego formatu pliku. Jest wspolnym jezykiem wiekszej rodziny filtrow konwersji obrazow bitmapowych. Poniewaz format nie przejmuje sie wydajnoscia, jest prosty i wystarczajaco ogolny, tak ze kazdy moze tworzyc programy konwertujace bitmapy z lub do innych formatow graficznych albo przetwarzajace obrazy. Nazwa ,,PBM" jest akronimem, pochodzacym od slow ,,Przenosna BitMapa". Nie jest to format, ktorego ktokolwiek normalnie by uzyl do przechowywania pliku lub do przeslania go do kogos innego -- jest zbyt drogi i malo wyrazisty do tego. Jest to po prostu format przejsciowy. Najczesciej jest uzywany w potokach miedzy dwoma programami. UKLAD Definicja formatu jest nastepujaca: Plik PBM sklada sie z sekwencji jednego lub wiecej obrazow PBM. Nie wystepuja zadne inne dane, separatory i wyrownania przed obrazami, po nich ani miedzy nimi. W sklad kazdego obrazu PBM wchodza: o A 'magic number' for identifying the file type. A pbm image's magic number is the two characters 'P4'. o Biala spacja (spacje, tabulacje, CR, LF). o Szerokosc obrazu pikselach, sformatowana jako dziesietne znaki ASCII. o Biala spacja. o Wysokosc obrazu w pikselach, znow jako dziesietne znaki ASCII. o Pojedynczy znak bialej spacji (zwykle znak nowego wiersza). o Raster o liczbie wierszy okreslonej przez wysokosc obrazu, od gory do dolu. Kazdy wiersz sklada sie z bitow w liczbie zadanej przez szerokosc obrazu. Bity sa pakowane po 8 w bajt. Ostatni bajt w wierszu jest wypelniony nieznaczacymi bitami. Kazdy bit reprezentuje piksel: 1 to czarny, a 0 to bialy. Porzadek pikseli jest od lewej do prawej. Porzadek ich przechowywania w kazdym bajcie pliku jest od najbardziej znaczacego bitu do najmniej znaczacego. Porzadek bajtow w pliku jest od poczatku pliku do konca pliku. Wiersz jest poziomy. Kolumna jest pionowa. Piksele w obrazie sa kwadratowe i ciagle. o Before the whitespace character that delimits the raster, any characters from a '#' through the next carriage return or newline character, is a comment and is ignored. Note that this is rather unconventional, because a comment can actually be in the middle of what you might consider a token. Note also that this means if you have a comment right before the raster, the newline at the end of the comment is not sufficient to delimit the raster. All characters referred to herein are encoded in ASCII. 'newline' refers to the character known in ASCII as Line Feed or LF. A 'white space' character is space, CR, LF, TAB, VT, or FF (I.e. what the ANSI standard C isspace() function calls white space). Prosty PBM Istnieje inna wersja formatu PBM, nawet jeszcze bardziej uproszczona, jeszcze bardziej nieprzejmujaca sie zajmowana przestrzenia niz PBM, zwana "prostym PBM". Prosty PBM w zasadzie pojawil sie wczesniej, ale nawet jego tworca nie mogl zniesc marnowania zasobow i po jakims czasie wymyslil to co dzis jest znane jako zwykly format PBM. Ale plik w formacie prostego PBM jest tak nadmiarowy, tak przesadzony, ze nie ma mozliwosci jego uszkodzenia. Mozna wysylac go przez nawet najbardziej liberalny system pocztowy (co bylo oryginalnym celem formatu PBM), a plik i tak bedzie wciaz czytelny. Mozna zamienic tuzin przypadkowo wybranych bitow, a potem z latwoscia odtworzyc oryginalny obraz. Nie ma potrzeby definiowania tego formatu tutaj, poniewaz latwo mozna go rozszyfrowac przez analizowanie. Program Netpbm tworzy domyslnie Surowy format PBM zamiast Prostego PBM, lecz opcja ogolna -plain wybiera Prosty PBM. Roznice to: o Plik zawiera dokladnie jeden obraz. o The 'magic number' is 'P1' instead of 'P4'. o Kazdy piksel w rastrze jest reprezentowany przez bajt zawierajacy znaki ASCII: "1" lub "0", oznaczajace odpowiednio kolor czarny lub bialy. Koniec wiersza nie zawiera bitow wyrownania. o Biala spacja w sekcji rastra jest ignorowana. o Po zakonczeniu sekcji rastra mozna podac dowolne smieci, jakie tylko sie chce, pod warunkiem, ze zaczynaja sie od bialej spacji. o Linia nie powinna byc dluzsza niz 70 znakow. Oto przyklad malego 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 koncu kazdego wiersza znajduje sie znak nowego wiersza. Program pnmtoplainpnm umozliwia wygenerowanie Prostego formatu PBM z regularnego formatu PBM (tylko pierwszy obraz). Programy, odczytujace ten format powinny byc jak najwyrozumialsze, przyjmujac wszystko, co z daleka wyglada na bitmape. IDENTYFIKATOR INTERNETOWY (MIME) Dla formatu PBM nie zarejestrowano internetowego identyfikatora formatu danych (Internet Media Type -- MIME) w IANA, lecz konwencjonalna jest wartosc image/x-portable-bitmap. Prosze zauwazyc, ze image/x-portable-anymap dotyczy tez PNM. NAZWA PLIKU There are no requirements on the name of a PBM file, but the convention is to use the suffix '.pbm'. 'pnm' is also conventional, for cases where distinguishing between the particular subformats of PNM is not convenient. ZGODNOSC Przed lipcem 2000 roku plik PBM mogl zawierac tylko jeden obraz. W wyniku tego wiekszosc narzedzi przetwarzajacych pliki PBM ignoruje (nie czyta) danych po pierwszym obrazie. ZOBACZ TAKZE libnetpbm(1) , pnm(1) , pgm(1) , ppm(1) , pam(1) , programy, ktore przetwarzaja PBM ZRODLO DOKUMENTU Niniejsza strone podrecznika wygenerowano za pomoca narzedzia Netpbm ,,makeman" ze zrodel HTML. Glowna dokumentacja jest dostepna pod adresem http://netpbm.sourceforge.net/doc/pbm.html TLUMACZENIE Tlumaczenie niniejszej strony podrecznika: Przemek Borys , Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . dokumentacja netpbm 27 November 2013 Format PBM(5)