Provided by: manpages-pl_4.27.0-1_all bug

NAZWA

       pgm - format obrazu Netpbm w skali szarości

OPIS

       Program jest częścią Netpbm(1).

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

       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.

       Nazwa „PGM” jest akronimem, pochodzącym od słów „przenośna mapa szarości” („Portable Gray Map”).

       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.

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 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 znaki ASCII.

       •      Biała spacja.

       •      Wysokość, sformatowana jako dziesiętne znaki ASCII.

       •      Biała spacja.

       •      Maksymalna  wartość  szarości  (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 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.

              Wiersz jest poziomy. Kolumna jest pionowa. Piksele w obrazie są kwadratowe i ciągłe.

              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.

              Zakres BT.709 wartości kanałów (16-240) jest bez znaczenia w PGM.

              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.

              Inną  popularną  odmianą  PGM jest zamiana BT.709 nowszą funkcją transferu sRGB. Można korzystać z
              pnmgamma do konwersji pomiędzy tą odmianą a prawdziwym PGM.

              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.

       Ł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 wartość
       szarości i 2 bajtów na wartość szarości.

       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 PGM
       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. pbm(1)
       zawiera komentarze na temat relacji pomiędzy formatem prostym a  surowym  i  informacje  o  sposobie  ich
       użycia.

       Różnice w prostym formacie są następujące:

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

       •      Linia nie powinna być dłuższa niż 70 znaków.

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

       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

       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 jak obraz PGM.

IDENTYFIKATOR INTERNETOWY (MIME)

       Dla formatu PGM nie zarejestrowano internetowego identyfikatora formatu danych  (Internet  Media  Type  —
       MIME) w IANA, lecz konwencjonalna jest wartość image/x-portable-graymap.

       Proszę zauważyć, że image/x-portable-anymap dotyczy też PNM.

NAZWA PLIKU

       Nie  ma  wymagań  odnośnie  nazwy  pliku  PGM,  lecz przyjęło się rozszerzenie „pgm”. 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 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

       pnm(1)  , pbm(1)  , ppm(1)  , pam(1)  , libnetpbm(1); programy, które przetwarzają PGM(1)

AUTOR

       Copyright (C) 1989, 1991 Jef Poskanzer.

Ź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/pgm.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 PGM(5)