Provided by: manpages-pl_0.7-2_all 

NAZWA
pgm - przenośny format szarej bitmapy
OPIS
Format PGM jest najmniejszym wspólnym mianownikiem plików w formacie odcieni szarości. Został
zaprojektowany, aby był niezmiernie łatwy do nauczenia i pisania programów jego obsługi. (Jest tak
prosty, że większość ludzi po prostu zastosuje inżynierię odwrotną ponieważ jest to prostsze niż czytanie
tej dokumentacji).
Obraz PGM reprezentuje graficzny obraz w odcieniach szarości. Istnieje wiele formatów pseudo-PGM,
różniących się od opisanego tutaj znaczeniem poszczególnych wartości pikseli. Dla większości celów obraz
PGM można sobie wyobrazić jako tablicę dowolnych liczb typu integer, i wszystkie programy świata, które
myślą, że przetwarzają obraz w odcieniach szarości, mogą być prosto oszukane, by procesować cokolwiek
innego.
Jednym z oficjalnych wariantów PGM jest maska przezroczystości. W bibliotece netpbm maska
przezroczystości jest reprezentowana przez obraz PGM, który zamiast intensywności pikseli ma zapisane
wartości nieprzezroczystości. Patrz niżej.
Definicja formatu jest następująca:
Plik PGM składa się z sekwencji jednego lub więcej obrazów PGM. Nie występują żadne inne dane, separatory
i wyrównania przed obrazami, po nich ani między nimi.
W skład każdego obrazu PGM wchodzą:
- "Numer magiczny", identyfikujący rodzaj pliku. Numerem magicznym pliku pgm są dwa znaki: "P5".
- Biała spacja (spacje, tabulacje, CR, LF).
- Szerokość, sformatowana jako dziesiętne ASCII.
- Biała spacja.
- Wysokość, znów jako dziesiętne ASCII.
- Biała spacja.
- Maksymalna wartość szarości (maxval), znów jako dziesiętne ASCII. Musi być mniejsza od 65536.
- Znak nowej linii lub inny znak białej spacji.
- Raster o rozmiarze szerokość * wysokość wartości szarości, przetwarzany w normalnym porządku czytania
tekstu. Każda wartość szarości jest liczbą od zera do pewnej wartości maksymalnej, gdzie 0 oznacza
czerń, a wartość maksymalna - biel. Każda wartość szarości 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.
- Każda wartość szarości jest numerem proporcjonalnym do intensywności piksela, wyrównanej przez funkcję
transferu gamma CIE Rec. 709. (Ta funkcja transferu określa numer gamma jako 2.2 i ma liniową sekcję
dla niskich intensywności). Wartość 0 oznacza czerń. Maksymalna wartość reprezentuje kolor biały CIE
D65 i najbardziej intensywny kolor w obrazie i w jakimkolwiek innym obrazie, z którym można by porównać
bieżący obraz.
- Proszę zauważyć, że zwyczajową wariacją formatu PGM jest "liniowe" wymienianie wartości szarości, tj.
tak jak podano powyżej, z wyjątkiem braku wyrównania gamma. pnmgamma potrafi przyjąć plik PGM w takim
wariancie na wejściu i wyprodukować prawdziwy plik PGM na wyjściu.
- W wariacji PGM zawierającej maskę przezroczystości wartość reprezentuje poziom nieprzejrzystości. Jest
proporcjonalna do ułamka intensywności piksela, który by się pojawił zamiast podstawowego piksela, z
zaaplikowaną taką samą funkcją transferu gamma, jak opisana powyżej. Tak więc to, co normalnie oznacza
kolor biały, oznacza tu całkowitą nieprzezroczystość, a to co normalnie oznacza czerń, reprezentuje
całkowitą przezroczystość. Pomiędzy tymi wartościami należy sobie obliczyć intensywność piksela
złożonego z pikseli "poniżej" i "powyżej". używając wzoru: poniżej * 1 (1-(alpha/alpha_maxval)) +
powyżej * (alpha/alpha_maxval).
- Znaki od "#" do znaku końca linii, przed linią maxval są ignorowane jako komentarze.
Proszę zauważyć, że można użyć pnmdepth do konwersji pomiędzy formatami używającymi 1 bajtu na wartość
szarości i 2 bajtów na wartość szarości.
Istnieje także jeszcze jedna, dość rzadko spotykana, wersja formatu PGM: "czysty" format PGM. Format
opisany powyżej, który generalnie uważa się za zwykły format, jest znany jako format "surowy" PGM. pbm(5)
zawiera komentarze na temat relacji pomiędzy formatem czystym a surowym.
Różnice formatu czystego to:
- Plik zawiera dokładnie jeden obraz.
- "Magiczny numer" to "P2" zamiast "P5".
- Każda piksel w rastrze jest reprezentowany jako numer dziesiętny ASCII (dowolnego rozmiaru).
- Każdy piksel w rastrze ma biały znak przed i po. Pomiędzy dwoma dowolnymi pikselami musi występować
przynajmniej jeden biały znak, ale nie ma górnego ograniczenia na liczbę białych znaków.
- Żadna z linii nie powinna być dłuższa niż 70 znaków.
Oto przykład małego obrazka w tym formacie:
P2
# feep.pgm
24 7
15
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 3 3 3 3 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 15 15 15 0
0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 15 0
0 3 3 3 0 0 0 7 7 7 0 0 0 11 11 11 0 0 0 15 15 15 15 0
0 3 0 0 0 0 0 7 0 0 0 0 0 11 0 0 0 0 0 15 0 0 0 0
0 3 0 0 0 0 0 7 7 7 7 0 0 11 11 11 11 0 0 15 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
Programy, które odczytują ten format powinny być jak najwyrozumialsze, akceptując wszystko, co z daleka
wygląda jak mapa szarości.
ZGODNOŚĆ
Przed kwietniem 2000 roku, plik w surowym formacie PGM 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 PGM mógł zawierać tylko jeden obraz. W wyniku tego większość narzędzi
przetwarzających pliki PGM ignoruje (nie czyta) danych po pierwszym obrazie.
ZOBACZ TAKŻE
fitstopgm(1), fstopgm(1), hipstopgm(1), lispmtopgm(1), psidtopgm(1), rawtopgm(1), pgmbentley(1),
pgmcrater(1), pgmedge(1), pgmenhance(1), pgmhist(1), pgmnorm(1), pgmoil(1), pgmramp(1), pgmtexture(1),
pgmtofits(1), pgmtofs(1), pgmtolispm(1), pgmtopbm(1), pnm(5), pbm(5), ppm(5)
AUTOR
Copyright (C) 1989, 1991 Jef Poskanzer.
TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Przemek Borys (PTM)
<pborys@dione.ids.pl> i Robert Luberda <robert@debian.org>.
Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie
http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 10.0 oryginału.
12 listopada 1991 pgm(5)