You are here: Home » Image Formats » PPM

PPM

Un format de Netpbm este un format de grafică utilizată și definită prin proiectul Netpbm. Formatul portabil pixmap ( PPM ), al formatului portabil graymap ( PGM ) , precum și formatul bitmap portabil ( PBM ) formate de fișiere imagine sunt proiectate pentru a fi ușor schimbate între platforme. Ele sunt denumite uneori ca anymap portabil format ( PNM ), [4] [5] , care nu trebuie confundat cu formatul legat de card aleatoare portabil.

Istorie

Formatul PBM a fost inventat de Jef Poskanzer în 1980 ca un format care a permis bitmapuri monocrome într – un mesaj e-mail ca text ASCII simplu pot fi trimise pentru a putea supraviețui orice modificări în format text. [5] Poskanzer a dezvoltat primele instrumente de bibliotecă la formatul PBM, Pbmplus, lansat în 1988. trata conținea în principal instrumente pentru a converti între PBM și alte formate grafice. Până la sfârșitul anului 1988, PGM și Poskanzer au dezvoltat formate PPM, împreună cu instrumentele corespunzătoare și acestea sunt adăugate la Pbmplus. Versiunea finală a Pbmplus a fost 10 decembrie 1991.

În 1993, biblioteca Netpbm a fost dezvoltat pentru a înlocui neîntreținute Pbmplus. A fost doar o reambalare a Pbmplus cu adăugiri și remedieri depuse de oameni din întreaga lume. [6]

descrierea fisierului

Fiecare fișier începe cu un număr de doi octeți magic (în ASCII), că tipul de fișier este (PBM, PGM și PPM) și codificarea (identifică ASCII sau binar). Numărul magic este un capital P, urmat de un număr de o singură cifră.

Tip numar magic numar magic extensie culoare
bitmap portabil [1] P1 ASCII P4 binar .pbm 0-1 (alb-negru)
portabil graymap [2] P2 ASCII P5 binar .pgm 0-255 (tonuri de gri)
portabil pixmap [3] P3 ASCII P6 binar .ppm 0-255 (RGB)

Valoarea P7se referă la fișierul PAM , care în conformitate cu biblioteca Netpbm. [7]

Formatele ASCII stau pentru a fi citite uman și ușor de transfer la alte platforme; Formatele binare sunt mai eficiente în dimensiunea fișierului, dar poate fi nativ probleme octet-ordine.

În binar formatele PBM utilizează 1 bit per pixel, de 8 biți per pixel utilizate PGM și PPM utilizează 24 biți per pixel: 8 pentru roșu, verde, 8, 8 pentru albastru.

de exemplu, PBM

Un exemplu simplu al formatului PBM este după cum urmează (există o nouă regulă la sfârșitul fiecărei linii):

P1 
# Acesta este un exemplu bitmap al literei "J" 
6 10 
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 0 
0 0 0 0 1 0 
1 0 0 0 1 0 
0 1 1 1 0 0 
0 0 0 0 0 0 
0 0 0 0 0 0

Șirul de caractere P1 identifică formatul de fișier. Hash introduce un comentariu. Urmatoarele doua cifre indică lățimea și înălțimea. Apoi urmează matricea valorilor pixelilor (în monocrome caz, zerourile și singurele).

Aici este imaginea rezultată: Exemplu de arta ASCII într-un bitmap.pbm.png

Aici este mărit de 20 de ori: Exemplu de arta ASCII într-un bitmap scale20.pbm.png

Rețineți că o 0 reprezintă un pixel alb, iar 1 reprezintă un pixel negru. Acest lucru este în contrast cu alte formate, cu valori mai mari indică pixelii mai deschiși.

format binar P4 al aceluiași pixel cu fiecare imagine reprezintă un singur bit, ambalare 8 pixeli per octet, în care primul pixel ca fiind cel mai semnificativ bit. Se adaugă biți suplimentare pentru a umple până la un întreg octet la sfârșitul fiecărui rând.

exemplu PGM

formate PGM și PPM (ASCII și versiunile binare) au un parametru suplimentar la valoarea maximă (numerele de gri între alb-negru), dimensiunile după X și Y și datele reale ale pixelilor. Negru este 0 și valoarea maximă este de culoare albă. E o nouă regulă la sfârșitul fiecărei linii.

Exemplu (extinsă)

P2 
# Afișează cuvântul "FEEP" ( de exemplu , Netpbm pagina man 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 0 11 11 11 11 7 0 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

exemplu PPM

Acesta este un exemplu de imagine RGB de culoare stocate ca PPM. E o nouă regulă la sfârșitul fiecărei linii.

Imagine (extinsă)

P3 
3 2 
255 
# Partea de mai sus este antetul 
# "P3", acest lucru înseamnă că este o imagine RGB de culoare în ASCII 
# '3 2', lățimea și înălțimea imaginii în pixeli 
# "255" este valoarea maximă pentru fiecare culoare 
# secțiunea următoare sunt date de imagine: RGB Tripleti 
255 0 0 0 255 0 0 0 255 
255 255 0 255 255 255 0 0 0

P6 format binar al aceleiași imagini reprezintă fiecare componentă de culoare a fiecărui pixel cu un singur octet (adică trei octeți per pixel), în ordinea de roșu, verde, albastru, ulterior. Fișierul este mai mic, dar informația de culoare greu de citit de către oameni.

Formatul PPM nu este comprimat și, prin urmare, necesită mai mult spațiu și lățime de bandă decât ar fi un format comprimat. De exemplu, cele de mai sus 192 × 128 PNG (Portable Network Graphics imagine) are o dimensiune de fișier de 166 octeți. Imagine Convertit 192 × 128 PPM, dimensiunea fișierului este de 73 848 bytes. Formatul PPM este, în general, un format intermediar, care este utilizat pentru activitatea de aceasta pentru a converti într-un aspect mult mai eficient, de exemplu, formatul PNG, fără nici o pierdere de date în etapa intermediară.

Imaginea de mai sus reprezentat de numai 0 , iar valoarea maximă pentru r vineri dimineață g reen- b canale Lue pot fi , de asemenea , codificate ca:

P3 
# Aceeași imagine cu o lățime și înălțime de 3 2, 
# cu 0 sau 1 pentru fiecare culoare (roșu, verde, albastru) 
3 2 1 
1 0 0 0 1 0 0 0 1 
1 1 0 1 1 1 0 0 0

spațiu alb, și se termină cu linie, inclusiv linii de comentarii sintactică egal cu un spațiu în colectoarele PNM. Pentru simplu formate P1 … P3, acest lucru afectează, de asemenea, liniile pixmap; De fapt, normele trebuie să fie limitată la 70 de caractere:

P3 2 1 1 3 0 0 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0

Extensiile de 16 biți

Definiția inițială a formatelor binare PGM și PPM (P5 și P6) formate posibile biți adâncimi mai mari de 8 biți. Se poate desigur utiliza formatul ASCII, dar acest format atât încetinește citirea și face fișierul mult mai mare. Prin urmare, mulți programatori extins pentru a permite dimensiunea la adâncimi mai mari de biți. Folosind adâncimi mai mari de biți se confruntă cu problema de a avea de a decide cu privire la endianness fișierului. Diferitele implementări ar putea nici măcar adevărat ordinea octet utiliza, iar unele s – au alăturat endianness 16 biți la comanda de pixeli de ambalare. [8] În Netpbm, de facto implementarea standard a formatelor PNM, cel mai semnificativ octet mai întâi. [9 ]

RGB partajat adâncimea de culoare de mai jos 24 = 3 x 8, 30 = 3 x 10, 32 = 4 × 8, 36 × 12 = 3, 48 = 3 × 16 și 64 × 4 = 16 (cu trei r vineri dimineață g reen- b canale Lue, și un al patrulea nefolosit ofRGBA un canal LPHa, respectiv). XnView clasic poate citi rgb48be PPM, FFmpeg poate rgb48be PPM. [10]

În timp ce 30 = 3 x 10 ar putea încadra în 32 de biți nu este suportat de binare formate PNM și PAM. Toate PPM biți adâncimi mai mari de 8 biți sunt codificate în 64 de biți. Mai mult de 8-biți finisaj gri 16 biți fără transparență (FFmpeg PGM sau PAM pix_fmt gray16be ).

PGMYUV o variantă PGM numai de ffmpeg. [ Necesită citare ]

De asemenea, a se vedea

  • PAM (P7, hartă arbitrar portabile)
  • X pixmap (comparând PBM și XPM)

referinte

  1. ^ Du – te la: un b tip MIME .pbm nu este înregistrat cu IANA
  2. ^ Mergi la: un b tip MIME .pgm nu este înregistrat cu IANA
  3. ^ Du – te la: un b tip MIME .ppm nu este înregistrat cu IANA
  4. ^ Du – te la: un b tip MIME .pnm nu este înregistrat cu IANA
  5. ^ Mergi la: a b James D. Murray, William vanRyper (1996-1904). “Enciclopedia de Grafică Formate de fișiere, ediția a doua”. O’Reilly. ISBN 1-56592-161-5 . A primit 27/02/2014 . Verificați valorile datelor în: ( help ) |date=
  6. Sari în sus ^ “istorie Netpbm” . Primit de 17 nu sta în loc, anul 2010 .
  7. Sari în sus ^ aspect al fișierului PAM documentațieformat Netpbm
  8. Sari în sus ^ “Pnmtotiff Manual de utilizare.” Netpbm doc pe SourceForge . 27 martie 2005.
  9. Sari ^ “man page pamendian.” Netpbm doc pe SourceForge . 10 octombrie 2012.
  10. Sari ^ “formate”. Documentation FFmpeg general . 2014 . Adus de 23/02/2014 .