Formatul PBM(5)

NUME
pbm - formatul de imagine cu două niveluri Netpbm

DESCRIERE

Acest program face parte din Netpbm(1).

Formatul PBM este un format de fișier monocrom cu cel mai mic numitor comun. Acesta servește drept limbaj comun pentru o familie mare de filtre de conversie a imaginilor „bitmap” (hartă de biți). Deoarece formatul nu ține cont de eficiență, este suficient de simplu și de general pentru a putea dezvolta cu ușurință programe de conversie din și în aproape orice alt format grafic sau de manipulare a imaginii.

Numele „PBM” este un acronim derivat de la „Portable Bit Map” (hartă de biți portabilă).

Acesta nu este un format pe care cineva l-ar folosi în mod normal pentru a stoca un fișier sau pentru a-l transmite cuiva - este prea costisitor și nu este suficient de expresiv pentru asta. Este doar un format intermediar. În utilizarea sa cea mai pură, trăiește doar într-o conductă între alte două programe.

DISPUNEREA

Definiția formatului este următoarea.

Un fișier PBM este format dintr-o secvență de una sau mai multe imagini PBM. Nu există date, delimitatori sau umplutură înainte, după sau între imagini.

Fiecare imagine PBM este compusă din următoarele elemente:

•   Un „număr magic” pentru identificarea tipului de fișier. Numărul magic al unei imagini pbm este format din cele două caractere „P4”.

•   Spațiu alb (spații goale, TAB-uri(tabulatoare), CR-uri(retururi de cărucior), LF-uri(salturi de linie)).

•   Lățimea în pixeli a imaginii, formatată sub formă de caractere ASCII în zecimal.

•   Spațiu alb.

•   Înălțimea în pixeli a imaginii, tot în ASCII zecimal.

•   Un singur caracter de spațiu alb (de obicei o linie nouă).

•   Un rastru de rânduri de înălțime, în ordine de sus în jos. Fiecare rând este format din biți de lățime, împachetați câte 8 la un octet, cu biți neimportanți pentru a completa ultimul octet din rând. Fiecare bit reprezintă un pixel: 1 reprezintă negru, 0 reprezintă alb. Ordinea pixelilor este de la stânga la dreapta. Ordinea de stocare a acestora în cadrul fiecărui octet de fișier este de la bitul cel mai semnificativ la bitul cel mai puțin semnificativ. Ordinea octeților din fișier este de la începutul fișierului spre sfârșitul acestuia.

    Un rând al unei imagini este orizontal. O coloană este verticală. Pixelii din imagine sunt pătrați și contigui.

•   Înaintea caracterului de spațiu alb care delimitează rastrul, orice caracter de la „#” până la următorul caracter de retur de cărucior sau de linie nouă este un comentariu și este ignorat. Rețineți că acest lucru este mai degrabă neconvențional, deoarece un comentariu poate fi de fapt în mijlocul a ceea ce ați putea considera un simbol. Rețineți, de asemenea, că acest lucru înseamnă că, dacă aveți un comentariu chiar înainte de rastru, linia nouă de la sfârșitul comentariului nu este suficientă pentru a delimita rastrul.

Toate caracterele la care se face referire în prezentul document sunt codificate în ASCII. „linie nouă” se referă la caracterul cunoscut în ASCII sub numele de „Line Feed” sau LF (salt de linie). Un caracter „spațiu alb” este un spațiu, CR, LF, TAB, VT sau FF (adică ceea ce funcția C isspace() din standardul ANSI numește „spațiu alb”).

  PBM simplu (plain)

Există de fapt o altă versiune a formatului PBM, chiar mai simplistă, mai risipitoare de spațiu decât PBM, numită PBM simplu. De fapt, PBM simplu a fost primul, dar chiar și inventatorul său nu a mai putut suporta după un timp utilizarea nesăbuită și risipitoare a resurselor și a trecut la ceea ce cunoaștem acum ca fiind formatul PBM obișnuit. Dar PBM simplu este atât de redundant - atât de exagerat - încât este practic imposibil de spart. Îl puteți trimite prin cel mai liberal sistem de poștă (care a fost scopul inițial al formatului PBM) și va ajunge încă lizibil. Poți întoarce o duzină de biți la întâmplare și poți reconstitui cu ușurință imaginea originală. Și nici nu este nevoie să definim formatul aici, pentru că îl puteți decodifica prin inspecție.

Programele Netpbm generează în mod implicit formatul Raw PBM în loc de Plain PBM, dar opțiunea comună index.html#commonoptions -plain alege Plain PBM.

Diferența este următoarea:

•   Există exact o singură imagine într-un fișier.

•   „Numărul magic” este „P1” în loc de „P4”.

•   Fiecare pixel din rastru este reprezentat de un octet care conține ASCII „1” sau „0”, reprezentând albul și respectiv negrul. Nu există biți de umplere la sfârșitul unui rând.

•   Spațiul alb din secțiunea rastrului este ignorat.

•   Puteți pune orice gunoi doriți după rastru, dacă acesta începe cu un spațiu alb.

•   Niciun rând nu trebuie să aibă mai mult de 70 de caractere. Iată un exemplu de imagine mică în 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 sfârșitul fiecăreia dintre aceste linii se află un caracter de linie nouă.

Puteți genera formatul PBM simplu din formatul PBM obișnuit (numai prima imagine din fișier) cu ajutorul programului pnmtoplainpnm.

Programele care citesc acest format trebuie să fie cât se poate de indulgente, acceptând orice lucru care seamănă cât de cât cu o hartă de biți.

TIP DE SUPORT INTERNET

Nu a fost înregistrat la IANA niciun Internet Media Type (precum MIME type, content type) pentru PBM, dar valoarea image/x-portable-bitmap este convențională.

Rețineți că se aplică și PNM Internet Media Type image/x-portable-anymap.

NUME DE FIȘIER

Nu există cerințe privind numele unui fișier PBM, dar convenția este de a utiliza sufixul „.pbm”. „pnm” este, de asemenea, convențional, pentru cazurile în care nu este convenabil să se facă distincția între sub-formatele particulare ale PNM.

COMPATIBILITATE

Înainte de iulie 2000, un fișier PBM putea conține cel mult o imagine. Ca urmare, majoritatea instrumentelor de procesare a fișierelor PBM ignorau (și nu citeau) niciun fel de date după prima imagine.

CONSULTAȚI ȘI
libnetpbm(1), pnm(1), pgm(1), ppm(1), pam(1), programe care procesează PBM(1)

SURSA DOCUMENTULUI
Această pagină de manual a fost generată de instrumentul Netpbm «makeman» din sursa HTML. Documentația principală este la

    http://netpbm.sourceforge.net/doc/pbm.html

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.