Formatul PBM(5) File Formats Manual Formatul PBM(5) NUME pbm - formatul de imagine cu doua niveluri Netpbm DESCRIERE Acest program face parte din Netpbm(1). Formatul PBM este un format de fiier monocrom cu cel mai mic numitor comun. Acesta servete drept limbaj comun pentru o familie mare de filtre de conversie a imaginilor ,,bitmap" (harta de bii). Deoarece formatul nu ine cont de eficiena, este suficient de simplu i de general pentru a putea dezvolta cu uurina programe de conversie din i in aproape orice alt format grafic sau de manipulare a imaginii. Numele ,,PBM" este un acronim derivat de la ,,Portable Bit Map" (harta de bii portabila). Acesta nu este un format pe care cineva l-ar folosi in mod normal pentru a stoca un fiier sau pentru a-l transmite cuiva - este prea costisitor i nu este suficient de expresiv pentru asta. Este doar un format intermediar. In utilizarea sa cea mai pura, traiete doar intr-o conducta intre alte doua programe. DISPUNEREA Definiia formatului este urmatoarea. Un fiier PBM este format dintr-o secvena de una sau mai multe imagini PBM. Nu exista date, delimitatori sau umplutura inainte, dupa sau intre imagini. Fiecare imagine PBM este compusa din urmatoarele elemente: o Un ,,numar magic" pentru identificarea tipului de fiier. Numarul magic al unei imagini pbm este format din cele doua caractere ,,P4". o Spaiu alb (spaii goale, TAB-uri(tabulatoare), CR-uri(retururi de carucior), LF-uri(salturi de linie)). o Laimea in pixeli a imaginii, formatata sub forma de caractere ASCII in zecimal. o Spaiu alb. o Inalimea in pixeli a imaginii, tot in ASCII zecimal. o Un singur caracter de spaiu alb (de obicei o linie noua). o Un rastru de randuri de inalime, in ordine de sus in jos. Fiecare rand este format din bii de laime, impachetai cate 8 la un octet, cu bii neimportani pentru a completa ultimul octet din rand. Fiecare bit reprezinta un pixel: 1 reprezinta negru, 0 reprezinta alb. Ordinea pixelilor este de la stanga la dreapta. Ordinea de stocare a acestora in cadrul fiecarui octet de fiier este de la bitul cel mai semnificativ la bitul cel mai puin semnificativ. Ordinea octeilor din fiier este de la inceputul fiierului spre sfaritul acestuia. Un rand al unei imagini este orizontal. O coloana este verticala. Pixelii din imagine sunt patrai i contigui. o Inaintea caracterului de spaiu alb care delimiteaza rastrul, orice caracter de la ,,#" pana la urmatorul caracter de retur de carucior sau de linie noua este un comentariu i este ignorat. Reinei ca acest lucru este mai degraba neconvenional, deoarece un comentariu poate fi de fapt in mijlocul a ceea ce ai putea considera un simbol. Reinei, de asemenea, ca acest lucru inseamna ca, daca avei un comentariu chiar inainte de rastru, linia noua de la sfaritul comentariului nu este suficienta pentru a delimita rastrul. 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"). PBM simplu (plain) Exista de fapt o alta versiune a formatului PBM, chiar mai simplista, mai risipitoare de spaiu decat PBM, numita PBM simplu. De fapt, PBM simplu a fost primul, dar chiar i inventatorul sau nu a mai putut suporta dupa un timp utilizarea nesabuita i risipitoare a resurselor i a trecut la ceea ce cunoatem acum ca fiind formatul PBM obinuit. Dar PBM simplu este atat de redundant - atat de exagerat - incat este practic imposibil de spart. Il putei trimite prin cel mai liberal sistem de pota (care a fost scopul iniial al formatului PBM) i va ajunge inca lizibil. Poi intoarce o duzina de bii la intamplare i poi reconstitui cu uurina imaginea originala. i nici nu este nevoie sa definim formatul aici, pentru ca il putei decodifica prin inspecie. Programele Netpbm genereaza in mod implicit formatul Raw PBM in loc de Plain PBM, dar opiunea comuna -plain alege Plain PBM. Diferena este urmatoarea: o Exista exact o singura imagine intr-un fiier. o ,,Numarul magic" este ,,P1" in loc de ,,P4". o Fiecare pixel din rastru este reprezentat de un octet care conine ASCII ,,1" sau ,,0", reprezentand albul i respectiv negrul. Nu exista bii de umplere la sfaritul unui rand. o Spaiul alb din seciunea rastrului este ignorat. o Putei pune orice gunoi dorii dupa rastru, daca acesta incepe cu un spaiu alb. o Niciun rand nu trebuie sa aiba mai mult de 70 de caractere. Iata un exemplu de imagine mica in format simplu (plain) PBM. P1 # feep.pbm 24 7 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 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 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 La sfaritul fiecareia dintre aceste linii se afla un caracter de linie noua. Putei genera formatul PBM simplu din formatul PBM obinuit (numai prima imagine din fiier) cu ajutorul programului pnmtoplainpnm. Programele care citesc acest format trebuie sa fie cat se poate de indulgente, acceptand orice lucru care seamana cat de cat cu o harta de bii. TIP DE SUPORT INTERNET Nu a fost inregistrat la IANA niciun Internet Media Type (precum MIME type, content type) pentru PBM, dar valoarea image/x-portable-bitmap 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 PBM, dar convenia este de a utiliza sufixul ,,.pbm". ,,pnm" este, de asemenea, convenional, pentru cazurile in care nu este convenabil sa se faca distincia intre sub-formatele particulare ale PNM. COMPATIBILITATE Inainte de iulie 2000, un fiier PBM putea conine cel mult o imagine. Ca urmare, majoritatea instrumentelor de procesare a fiierelor PBM ignorau (i nu citeau) niciun fel de date dupa prima imagine. CONSULTAI I libnetpbm(1), pnm(1), pgm(1), ppm(1), pam(1), programe care proceseaza PBM(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/pbm.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 27 noiembrie 2013 Formatul PBM(5)