Provided by: manpages-pl_4.27.0-1_all 

NAZWA
PPM - format obrazu kolorowego Netpbm
OPIS
Program jest częścią Netpbm(1).
Jest to prosty format PPM przeznaczony do obrazów kolorowych.
Należy zauważyć, że ten format jest strasznie niewydajny. Jest bardzo rozwlekły i zawiera wiele
informacji, których ludzkie oko nie jest w stanie dostrzec. Co więcej, oprócz podstawowych kolorów format
nie dostarcza więcej innych informacji, co oznacza, że oprócz pliku w tym formacie trzeba w innym miejscu
przechowywać pozostałe informacje, tak żeby można było z tego sensownie korzystać. Jednakże w bardzo
łatwy sposób można napisać i analizować programy przetwarzające ten format - i to jest główna zaleta.
Należy także zauważyć, że często pliki są zgodne z tym formatem pod każdym względem, z wyjątkiem
precyzyjnego znaczenia wartości próbek. Pliki te są użyteczne z powodu sposobu, w jakim PPM jest używany
jako format pośredni. Nieformalnie są nazywane plikami PPM, ale żeby być absolutnie precyzyjnym
należałoby je nazywać wariantami prawdziwego PPM. Na przykład „PPM używający takich kolorów czerwonego,
zielonego i niebieskiego, których używa dany skaner”.
Nazwa „PPM” jest akronimem słów „Przenośna Mapa Pikseli” („Portable Pixel Map”). Obrazy w tym formacie
(lub jego poprzednikach) były niegdyś zwane również „przenośnymi pixmapami”.
FORMAT
Definicja formatu jest jak następuje. Można skorzystać z biblioteki podprogramu C libnetpbm(1), aby łatwo
i dokładnie odczytywać i interpretować format.
Plik PPM składa się z sekwencji jednego lub więcej obrazów PPM. Nie występują żadne inne dane, separatory
i wyrównania przed obrazami, po nich ani między nimi.
W skład każdego obrazu PPM wchodzą:
• "Numer magiczny", określający rodzaj pliku. Numerem magicznym ppm są dwa znaki: "P6".
• Biała spacja (spacje, tabulacje, CR, LF).
• Szerokość, sformatowana jako dziesiętne znaki ASCII.
• Biała spacja.
• Wysokość, sformatowana jako dziesiętne znaki ASCII.
• Biała spacja.
• Maksymalna wartość komponentu kolorowego (maxval), znów jako dziesiętne ASCII. Musi być mniejsza
od 65536 i większa od zera.
• Pojedynczy znak białej spacji (zwykle znak nowego wiersza).
• Raster o rozmiarze Wysokości wierszy, w kolejności od góry do dołu. Każdy wiersz składa się z
Szerokości pikseli, od lewej do prawej. Każdy piksel jest trójką kolorów czerwonego, zielonego i
niebieskiego, w tej właśnie kolejności. Każda próbka jest reprezentowana binarnie albo na jednym
bajcie albo na dwóch bajtach. Jeśli wartość maksymalna jest mniejsza niż 256, będzie to jeden
bajt. W przeciwnym wypadku są używane dwa bajty. Najbardziej znaczący bajt jest podawany pierwszy.
Wiersz jest poziomy. Kolumna jest pionowa. Piksele w obrazie są kwadratowe i ciągłe.
W rastrze wartości próbek są „nieliniowe”. Są proporcjonalne do natężenia ITU-R Recommendation
BT.709 kolorów czerwonego, zielonego i niebieskiego w pikselu, wyrównanego przez funkcję transferu
gamma BT.709. (Ta funkcja transferu określa numer gamma jako 2.2 i ma liniową sekcję dla niskich
intensywności). Maksymalna wartość tych trzech próbek reprezentuje kolor biały CIE D65 i
najbardziej intensywny kolor w uniwersum kolorów, którego częścią jest ten obraz (uniwersum
kolorów oznacza wszystkie możliwe kolory we wszystkich obrazach, z którymi można by porównać
bieżący obraz).
Zakres BT.709 wartości kanałów (16-240) jest bez znaczenia w PPM.
ITU-R Recommendation BT.709 jest zmienioną nazwą wcześniejszej CCIR Recommendation 709. Gdy CCIR
została wchłonięta w swoją organizację nadrzędną, ITU, około roku 2000, standard został
przemianowany. Ten dokument odnosił się niegdyś do tego standardu jako CIE Rec. 709, lecz nie jest
obecnie jasne, czy był to w ogóle standard CIE.
Proszę zauważyć, że inną popularną przestrzenią barw jest nowsza sRGB. Częstym wariantem PPM jest
taki, w którym przestrzeń kolorów jest przez nią zastępowana. Można korzystać z programu pnmgamma
do przekształceń pomiędzy tym wariantem a prawdziwym PPM.
Proszę zauważyć, że zwyczajową wariacją formatu PPM jest „liniowe” wymienianie wartości próbek,
tj. tak jak podano powyżej, z wyjątkiem braku wyrównania gamma. pnmgamma potrafi przyjąć plik PPM
w takim wariancie na wejściu i wyprodukować prawdziwy plik PPM na wyjściu.
Łańcuchy zaczynające się od znaku „#” mogą być komentarzami, tak samo jak w PBM(1).
Proszę zauważyć, że można użyć pamdepth do konwersji pomiędzy formatami używającymi 1 bajtu na próbkę i 2
bajtów na próbkę.
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 PPM
Istnieje także jeszcze jedna, dość rzadko spotykana, wersja formatu PPM: „prosty” format PPM. Format
opisany powyżej, który generalnie uważa się za zwykły format, jest znany jako format "surowy". pbm(1)
zawiera komentarze na temat relacji pomiędzy formatem prostym a surowym oraz sposobu ich użycia.
Różnice w prostym formacie są następujące:
• Plik zawiera dokładnie jeden obraz.
• „Magiczny numer” to „P3” zamiast „P6”.
• Każda próbka w rastrze jest reprezentowana jako numer dziesiętny ASCII (dowolnego rozmiaru).
• Każda próbka w rastrze ma biały znak przed i po. Pomiędzy dwoma dowolnymi próbkami musi występować
przynajmniej jeden biały znak, ale nie ma górnego ograniczenia na liczbę białych znaków. Piksele
nie są od siebie rozdzielane w jakiś szczególny sposób — wystarczy obowiązkowa separacja pomiędzy
próbką białą jednego piksela a próbką czerwoną kolejnego piksela.
• Linia nie powinna być dłuższa niż 70 znaków.
Oto przykład małego obrazu w tym formacie:
P3
# feep.ppm
4 4
15
0 0 0 0 0 0 0 0 0 15 0 15
0 0 0 0 15 7 0 0 0 0 0 0
0 0 0 0 0 0 0 15 7 0 0 0
15 0 15 0 0 0 0 0 0 0 0 0
Na końcu każdego wiersza znajduje się znak nowego wiersza.
Programy, które odczytują ten format, powinny być jak najwyrozumialsze, akceptując wszystko, co z daleka
wygląda na obraz PPM.
IDENTYFIKATOR INTERNETOWY (MIME)
Dla formatu PPM nie zarejestrowano internetowego identyfikatora formatu danych (Internet Media Type —
MIME) w IANA, lecz konwencjonalna jest wartość image/x-portable-pixmap.
Proszę zauważyć, że image/x-portable-anymap dotyczy też PNM.
NAZWA PLIKU
Nie ma wymagań odnośnie nazwy pliku PPM, lecz przyjęło się rozszerzenie „ppm”. Konwencjonalne jest
również „pnm” w przypadkach, gdy nie jest wygodne rozróżnianie pomiędzy danymi podformatami PNM.
ZGODNOŚĆ
Przed kwietniem 2000 roku, plik w surowym formacie PPM nie mógł mieć maksymalnej wartości większej niż
255. Dlatego nie mógł przechowywać więcej niż jednego bajtu na próbkę. Stare programy mogą od tego
zależeć.
Przed lipcem 2000 roku plik PPM mógł zawierać tylko jeden obraz. W wyniku tego większość narzędzi
przetwarzających pliki PPM ignoruje (nie czyta) danych po pierwszym obrazie.
ZOBACZ TAKŻE
pnm(1), pgm(1), pbm(1), pam(1); programy, które przetwarzają PPM
Ź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
http://netpbm.sourceforge.net/doc/ppm.html
TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: 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.
dokumentacja netpbm 9 października 2016 r Dokumentacja formatu PPM(5)