.\" -*- coding: UTF-8 -*-
.\" This man page was generated by the Netpbm tool 'makeman' from HTML source.
.\" Do not hand-hack it!  If you have bug fixes or improvements, please find
.\" the corresponding HTML page on the Netpbm website, generate a patch
.\" against that, and send it to the Netpbm maintainer.
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH "Dokumentacja formatu PGM" 5 "9 października 2016 r" "dokumentacja netpbm" 

.SH NAZWA

pgm \- format obrazu Netpbm w skali szarości

.UN description
.SH OPIS
.PP
Program jest częścią \fBNetpbm\fP(1).
.PP
Format PBM jest najmniejszym wspólnym mianownikiem dla monochromatycznego
formatu pliku. 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).
.PP
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.
.PP
Nazwa \[Bq]PGM\[rq] jest akronimem, pochodzącym od słów \[Bq]przenośna mapa
szarości\[rq] (\[Bq]Portable Gray Map\[rq]).
.PP
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.

.UN format
.SH FORMAT
.PP
Definicja formatu jest jak następuje. Można skorzystać z biblioteki
podprogramu C \fBlibnetpbm\fP(1), aby łatwo i dokładnie odczytywać i
interpretować format.
.PP
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.
.PP
W skład każdego obrazu PGM wchodzą:


  
.IP \(bu
"Numer magiczny", identyfikujący rodzaj pliku. Numerem magicznym pliku pgm
są dwa znaki: "P5".

.IP \(bu
Biała spacja (spacje, tabulacje, CR, LF).

.IP \(bu
Szerokość, sformatowana jako dziesiętne znaki ASCII.

.IP \(bu
Biała spacja.

.IP \(bu
Wysokość, sformatowana jako dziesiętne znaki ASCII.

.IP \(bu
Biała spacja.

.IP \(bu
Maksymalna wartość szarości (maxval), znów jako dziesiętne ASCII. Musi być
mniejsza od 65536 i większa od zera.

.IP \(bu
Pojedynczy znak białej spacji (zwykle znak nowego wiersza).

.IP \(bu
Raster o Wysokości wierszy, w kolejności od góry do dołu. Każdy wiersz
składa się z Szerokości wartości szarości, w kolejności od lewej do
prawej. 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.
.sp
Wiersz jest poziomy. Kolumna jest pionowa. Piksele w obrazie są kwadratowe i
ciągłe.
.sp
Każda wartość szarości jest numerem proporcjonalnym do intensywności
piksela, wyrównanej przez funkcję transferu gamma ITU\-R Recommendation
BT.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.
.sp
Zakres BT.709 wartości kanałów (16\-240) jest bez znaczenia w PGM.
.sp
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. \fBpnmgamma\fP potrafi przyjąć plik PGM w takim wariancie na
wejściu i wyprodukować prawdziwy plik PGM na wyjściu.
.sp
Inną popularną odmianą PGM jest zamiana BT.709 nowszą funkcją transferu
sRGB. Można korzystać z \fBpnmgamma\fP do konwersji pomiędzy tą odmianą a
prawdziwym PGM.
.sp
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. 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). Proszę zauważyć,
że w masce przezroczystości brak jest funkcji transferu gamma.

 
.PP
Łańcuchy zaczynające się od znaku \[Bq]#\[rq] mogą być komentarzami, tak
samo jak w \fBPBM\fP(1).
.PP
Proszę zauważyć, że można użyć \fBpamdepth\fP do konwersji pomiędzy formatami
używającymi 1 bajtu na wartość szarości i 2 bajtów na wartość szarości.
.PP
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) \[em] tj. to, co funkcja
isspace() standardu C ANSI nazywa białym znakiem.

.UN plainpgm
.SS "Prosty PGM"
.PP
Istnieje także jeszcze jedna, dość rzadko spotykana, wersja formatu PGM:
"prosty" format PGM. Format opisany powyżej, który generalnie uważa się za
zwykły format, jest znany jako format "surowy" PGM. \fBpbm\fP(1) zawiera
komentarze na temat relacji pomiędzy formatem prostym a surowym i informacje
o sposobie ich użycia.
.PP
Różnice w prostym formacie są następujące:


.IP \(bu
Plik zawiera dokładnie jeden obraz.
.IP \(bu
"Magiczny numer" to "P2" zamiast "P5".
.IP \(bu
Każda piksel w rastrze jest reprezentowany jako numer dziesiętny ASCII
(dowolnego rozmiaru).
.IP \(bu
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.
.IP \(bu
Linia nie powinna być dłuższa niż 70 znaków.

.PP
Oto przykład małego obrazu w formacie prostego PGM:

.nf
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

.fi
.PP
Na końcu każdego wiersza znajduje się znak nowego wiersza.
.PP
Programy, które odczytują ten format powinny być jak najwyrozumialsze,
akceptując wszystko, co z daleka wygląda jak obraz PGM.


.UN internetmediatype
.SH "IDENTYFIKATOR INTERNETOWY (MIME)"
.PP
Dla formatu PGM nie zarejestrowano internetowego identyfikatora formatu
danych (Internet Media Type \[em] MIME) w IANA, lecz konwencjonalna jest
wartość \f(CWimage/x\-portable\-graymap\fP.
.PP
Proszę zauważyć, że \f(CWimage/x\-portable\-anymap\fP dotyczy też PNM.


.UN filename
.SH "NAZWA PLIKU"
.PP
Nie ma wymagań odnośnie nazwy pliku PGM, lecz przyjęło się rozszerzenie
\[Bq]pgm\[rq]. Konwencjonalne jest również \[Bq]pnm\[rq] w przypadkach, gdy
nie jest wygodne rozróżnianie pomiędzy danymi podformatami PNM.


.UN compatibility
.SH ZGODNOŚĆ
.PP
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ć.
.PP
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.

.UN seealso
.SH "ZOBACZ TAKŻE"
\fBpnm\fP(1)  \&, \fBpbm\fP(1)  \&, \fBppm\fP(1)  \&, \fBpam\fP(1)  \&, \fBlibnetpbm\fP(1);
programy, które przetwarzają \fBPGM\fP(1)

.UN author
.SH AUTOR

Copyright (C) 1989, 1991 Jef Poskanzer.
.SH "ŹRÓDŁO DOKUMENTU"
Niniejszą stronę podręcznika wygenerowano za pomocą narzędzia Netpbm
\[Bq]makeman\[rq] ze źródeł HTML. Główna dokumentacja jest dostępna pod
adresem
.IP
\fBhttp://netpbm.sourceforge.net/doc/pgm.html\fP
.PP
.PP
.SH 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>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .
