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.

•   Înainte de caracterul de spațiu alb care delimitează „zmeul”, orice caracter de la „#” până la următorul caracter de întoarcere la cărucior sau linie nouă, sau până la sfârșitul fișierului, este un comentariu și este ignorat.

      (Înainte de iunie 2024, returul de cărucior sau saltul de linie erau specificate ca fiind parte a comentariului și ignorate, dar în cei 22 de ani în care comentariile au existat în specificație, Netpbm nu a implementat niciodată acest lucru).

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

  Subset minimal

  Formatul PBM este atât de simplu încât mulți programatori scriu programe pentru a-l procesa direct, fără a utiliza o bibliotecă precum libnetpbm, realizând inginerie inversă asupra unui subset al formatului din exemple, în loc să utilizeze specificația. Prin urmare, dacă doriți să produceți o imagine care să poată fi citită de cât mai multe programe posibil, ar trebui să vă limitați la următorul subset.

Imaginea este formată din următorii octeți:

•   „P4” urmat de caracterul de linie nouă

•   lățimea și înălțimea separate printr-un spațiu (de exemplu, „50 100”),
       urmate de o linie nouă

•   Rastrul

Există doar o singură imagine în fișier.

  Programul pnmtopnm produce acest subset minimal, astfel încât, dacă aveți o imagine PBM mai complexă, o puteți transfera către un program mai puțin tolerant prin intermediul pnmtopnm.

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