Specificaii privind formatul PPM(5) File Formats Manual NUME PPM - formatul de imagine color Netpbm DESCRIERE Acest program face parte din Netpbm(1). Formatul PPM este un format de fiier de imagine color cu cel mai mic numitor comun. Trebuie remarcat faptul ca acest format este extrem de ineficient. Este extrem de redundant, coninand in acelai timp o mulime de informaii pe care ochiul uman nici macar nu le poate discerne. In plus, formatul permite foarte puine informaii despre imagine in afara de culoarea de baza, ceea ce inseamna ca este posibil sa trebuiasca sa cuplai un fiier in acest format cu alte informaii independente pentru a obine o utilizare decenta din el. Cu toate acestea, este foarte uor sa scriei i sa analizai programe pentru a procesa acest format, iar acesta este scopul. De asemenea, trebuie remarcat faptul ca fiierele sunt adesea conforme cu acest format in toate privinele, cu excepia semanticii precise a valorilor eantionului. Aceste fiiere sunt utile datorita modului in care PPM este utilizat ca format intermediar. Ele sunt denumite in mod informal fiiere PPM, dar pentru a fi absolut precis, trebuie sa indicai variaia faa de PPM adevarat. De exemplu, ,,PPM folosind culorile rou, verde i albastru pe care le folosete scanerul in cauza". Numele ,,PPM" este un acronim derivat de la ,,Portable Pixel Map" (harta de pixeli portabila). Imaginile in acest format (sau un precursor al acestuia) au fost odata numite i ,,pixmaps portabile". FORMATUL Definiia formatului este urmatoarea. Putei utiliza biblioteca de subrutine libnetpbm(1) C pentru a citi i interpreta in mod convenabil i precis formatul. Un fiier PPM este format dintr-o secvena de una sau mai multe imagini PPM. Nu exista date, delimitatori sau umplutura inainte, dupa sau intre imagini. Fiecare imagine PPM este compusa din urmatoarele elemente: o Un ,,numar magic" pentru identificarea tipului de fiier. Numarul magic al unei imagini ppm este format din cele doua caractere ,,P6". o Spaiu alb (spaii goale, TAB-uri(tabulatoare), CR-uri(retururi de carucior), LF-uri(salturi de linie)). o O laime, formatata in caractere ASCII in zecimale. o Spaiu alb. o O inalime, din nou in format ASCII zecimal. o Spaiu alb. o Valoarea maxima a culorii (Maxval), din nou in format ASCII zecimal. Trebuie sa fie mai mica decat 65536 i mai mare decat zero. o Un singur caracter de spaiu alb (de obicei o linie noua). o Un raster de randuri de inalime, in ordine de sus in jos. Fiecare rand este format din pixeli de laime, in ordine de la stanga la dreapta. Fiecare pixel este un triplet de eantioane de rou, verde i albastru, in aceasta ordine. Fiecare eantion este reprezentat in binar pur prin 1 sau 2 octei. In cazul in care Maxval este mai mica de 256, reprezinta 1 octet. In caz contrar, este de 2 octei. Cel mai semnificativ octet este primul. Un rand al unei imagini este orizontal. O coloana este verticala. Pixelii din imagine sunt patrai i contigui. In raster, valorile eantionului sunt ,,neliniare". Acestea sunt proporionale cu intensitatea de rou, verde i albastru din recomandarea ITU-R BT.709 din pixel, ajustate de funcia de transfer gamma BT.709; (aceasta funcie de transfer specifica un numar gamma de 2,2 i are o seciune liniara pentru intensitai mici). O valoare de Maxval pentru toate cele trei eantioane reprezinta albul CIE D65 i cea mai intensa culoare din universul de culori din care face parte imaginea (universul de culori reprezinta toate culorile din toate imaginile cu care aceasta imagine ar putea fi comparata). Recomandarea BT.709 a UIT-R este o redenumire a fostei Recomandari 709 a CCIR Cand CCIR a fost absorbit de organizaia mama, UIT, in jurul anului 2000, standardul a fost redenumit. Acest document s-a referit candva la standard ca fiind CIE Rec. 709, dar acum nu este clar daca CIE a sponsorizat vreodata un astfel de standard. Reinei ca un alt spaiu de culoare popular este cel mai nou sRGB. O variaie obinuita faa de PPM este inlocuirea acestui spaiu de culoare cu cel specificat. Reinei ca o variaie obinuita faa de formatul PPM este ca valorile eantioanelor sa fie ,,liniare", adica aa cum se specifica mai sus, dar fara ajustarea gamma. pnmgamma primete ca intrare o astfel de varianta PPM i produce ca ieire un PPM adevarat. irurile care incep cu ,,#" pot fi comentarii, la fel ca in cazul PBM(1) . Reinei ca putei utiliza pamdepth pentru a face conversia intre formatul cu 1 octet per eantion i cel cu 2 octei per eantion. Toate caracterele la care se face referire in prezentul document sunt codificate in ASCII. ,,linie noua" se refera la caracterul cunoscut in ASCII sub numele de ,,Line Feed" sau LF (salt de linie). Un caracter ,,spaiu alb" este un spaiu, CR, LF, TAB, VT sau FF (adica ceea ce funcia C isspace() din standardul ANSI numete ,,spaiu alb"). PPM simplu ,,plain" De fapt, exista o alta versiune a formatului PPM care este destul de rara: formatul PPM ,,simplu". Formatul de mai sus, care este considerat in general cel normal, este cunoscut sub numele de format PPM ,,brut". A se vedea pbm(1) pentru cateva comentarii privind modul in care formatele ,,plain" (simplu) i ,,raw" (brut) se raporteaza unul la celalalt i cum se utilizeaza. Diferena in format simplu este urmatoarea: o Exista exact o singura imagine intr-un fiier. o ,,Numarul magic" este ,,P3" in loc de ,,P6". o Fiecare eantion din raster este reprezentat ca un numar zecimal ASCII (de marime arbitrara). o Fiecare eantion din raster are un spaiu alb inainte i dupa el. Intre doua eantioane trebuie sa existe cel puin un caracter de spaiu alb, dar nu exista un maxim. Nu exista o separare speciala a unui pixel de altul - doar separarea necesara intre eantionul albastru al unui pixel i eantionul rou al pixelului urmator. o Niciun rand nu trebuie sa aiba mai mult de 70 de caractere. Iata un exemplu de o mica imagine in acest format. 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 La sfaritul fiecareia dintre aceste linii se afla un caracter de linie noua. Programele care citesc acest format trebuie sa fie cat se poate de indulgente, acceptand orice lucru care seamana cat de cat cu o imagine PPM. TIP DE SUPORT INTERNET Nu a fost inregistrat la IANA niciun Internet Media Type (aka MIME type, content type) pentru PPM, dar valoarea image/x-portable-pixmap este convenionala. Reinei ca se aplica i PNM Internet Media Type image/x-portable-anymap. NUME DE FIIER Nu exista cerine privind numele unui fiier PPM, dar convenia este de a utiliza sufixul ,,.ppm". ,,pnm" este, de asemenea, convenional, pentru cazurile in care nu este convenabil sa se faca distincia intre subformatele particulare ale PNM. COMPATIBILITATE Inainte de aprilie 2000, un fiier PPM in format brut nu putea avea o valoare maxima mai mare de 255. Prin urmare, acesta nu putea avea mai mult de un octet pe eantion. Programele vechi pot depinde de acest lucru. Inainte de iulie 2000, un fiier PPM putea conine cel mult o imagine. Ca urmare, majoritatea instrumentelor de procesare a fiierelor PPM ignorau (i nu citeau) niciun fel de date dupa prima imagine. CONSULTAI I pnm(1), pgm(1), pbm(1), pam(1), programe care proceseaza PPM(1) SURSA DOCUMENTULUI Aceasta pagina de manual a fost generata de instrumentul Netpbm <> din sursa HTML. Documentaia principala este la http://netpbm.sourceforge.net/doc/ppm.html TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . documentaia netpbm 2 noiembrie 2013 Specificaii privind formatul PPM(5)