Grafica Vettoriale e Grafica BitMap o Raster Matjaž Hmeljak
Grafica vettoriale: si conserva sul "display file" l'informazione di tutti i comandi usati per generare un' immagine, cioe' la sequenza delle primitive (disegna un segmento di linea, disegna un poligono ecc) con i parametri opportuni e con le trasformazioni geometriche opportune; l'immagine viene riprodotta rieseguendo la sequenza dei comandi. L'immagine ottenuta dal "display file" puo' essere ingrandita a piacere, modificata, utilizzata come parte di un ' immagine piu' grande...
grafica vettoriale: il file grafico conserva la sequenza dei comandi grafici con i parametri opportuni e con le trasformazioni geometriche opportune; l'immagine viene riprodotta rieseguendo la sequenza dei comandi. E' il file grafico piu' antico, usato per memorizzare disegni tecnici: negli anni 60 un programma memorizzava i comandi su un nastro magnetico che poi veniva montato su un sistema di disegno con plotter e calcolatore che leggeva il file grafico e lo interpretava (lo eseguiva) traducendo i comandi delle primitive in sequenze di comandi "linguaggio macchina" del plotter (questo programma oggi si direbbe il driver del plotter) oppure su dispositivi grafici piu' veloci (schermo vettoriale) o addiritura su una stampante (pixel 130 x 80 = una pagina di stampa)
grafica vettoriale: il file postscript e' un disegno vettoriale, dove sono riportati in "esteso" i comandi per tracciare linee, poligoni, caratteri disegnati con primitive geometriche ecc; un frammento di file postscript : %!PS-Adobe-3.0 EPSF-3.0 %For: aldo %Title: PGPLOT PostScript plot %Creator: PGPLOT %CreationDate: 6-Feb :20 %BoundingBox: (atend)... %LanguageLevel: 1 %Orientation: Landscape... %EndComments %BeginProlog /L {moveto rlineto currentpoint stroke moveto} bind def /C {rlineto currentpoint stroke moveto} bind def.../EP {rlineto closepath eofill} bind def.../MB {gsave translate MFAC dup scale 1 setlinewidth 2 setlinecap 0 setlinejoin newpath} bind def.../FC {0 360 arc fill} bind def %EndProlog %Page: 1 1 %BeginPageSetup /PGPLOT save def scale translate 90 rotate 1 setlinejoin 1 setlinecap 1 SLW 1 SCF %EndPageSetup %PageBoundingBox: (atend) setrgbcolor BP LP LP LP LP LP LP LP LP LP LP LP LP LP setrgbcolor BP 0 8 LP 0 8 LP -1 8 LP -1 8 LP -1 8 LP -1 7 LP -2 8 LP -2 8 LP -2 8 LP -2 8 LP -3 7 LP -3 8 LP -3 7 LP -3 7 LP -3 8 LP -4 7 LP -4 7 LP -4 7 LP -5 6 LP -4 7 LP setrgbcolor setrgbcolor BP -2 1 LP 0 0 LP LP 0 0 LP LP -1 2 LP 8 1 EP... PGPLOT restore showpage %PageTrailer %PageBoundingBox: %Trailer %BoundingBox: %DocumentFonts: %Pages: 1 %EOF
grafica vettoriale: il file postscript e'un disegno vettoriale, dove sono riportati in "esteso" i comandi per tracciare linee, poligoni, caratteri disegnati con primitive geometriche ecc; il file postscript del disegno che segue occupa 16 Mb di spazio la stessa informazione (file vettoriale) puo' essere memorizzata in formato piu' compatto: il file vettoriale in formato pdf occupa 2,8Mb ma... vedremo alcuni ma...
la stessa immagine in file pdf occupa 2,8Mb non e' un testo ASCII: %PDF-1.3 [[ bytes]] %ƒÂÚÂÎßÛ†–ƒ∆ 2 0 obj > stream x⁄ÏΩÀ≤$ÀÆ6«WƒXfjff‰s¨Å∆˙Ø&˚»˚ˇf º<∫Ît=rôD^i˚‰Æïï8‡^‡øóˇ´¸˜Ú_˛èˇòÀ˝è... ÅT“hd°ëîª6Çÿ¬Ï±ñ:>f§fl&üm◊Áä‰Ìx›A4éÖ∂... |ŸNöŸÆÕØ6◊rmù^ô‹ÆÕöU·HW¸†´√ˇ5;ø?ˇÕ∞h endstream endobj 9 0 obj 706 endobj 5 0 obj [ /ICCBased 8 0 R ] endobj 6 0 obj > endobj 10 0 obj > endobj 11 0 obj << /CreationDate (D: '00') /ModDate (D: '00') /Producer (Mac OS X Quartz PDFContext) >> endobj xref n n n n trailer ] >> startxref %EOF
grafica bitmap: il programma disegna su una "tela" e il risultato e' un reticolo di pixel modificato; il reticolo di pixel viene fissato fin dall'inizio (in genere non legato allo schermo), e rimane sempre lo stesso: ingrandendo l'immagine la qualita' dell'immagine degrada... l'immagine di seguito visualizzata e' un file jpg (compresso), che occupa 640kB vediamo un esempio di confronto di ingrandimento di un'immagine data originalmente in versione vettoriale (file postscript o file pdf) oppure trasformata (con un programma di conversione formato) in versione bit-map (jpeg)
vettoriale vs bitmap Immagine di partenza (immagine costruita da A. Spizzichino di Bologna, con una libreria grafica Fortran (personale) su Unix; l'immagine e' data in postscript, e resa con Adobe...
vettoriale vs bitmap - immagine di partenza (qui la resa e' fatta con il Graphic Converter)... segue una sequenza di ingrandimenti successivi, eseguiti sempre sulla stessa sorgente droplets.pdf
vettoriale vs bitmap - 1.o ingrandimento
vettoriale vs bitmap - 2.o ingrandimento
vettoriale vs bitmap - 3.o ingrandimento
vettoriale vs bitmap - 4.o ingrandimento
vettoriale vs bitmap - ingrandimenti da 1 a 4 a confronto: (nota gli spazi bianchi da err di approssimazione nella resa ps)
vettoriale vs bitmap: vediamo gli ingrandimenti da versione bit- map (immagine di partenza uguale - e' l'immagine droplets.ps trasformata in droplets.jpg, per schermo 1280x854
vettoriale vs bitmap - 1.o ingrandimento
vettoriale vs bitmap - 2.o ingrandimento: i pixel ora si vedono
vettoriale vs bitmap - 3.o ingrandimento i pixel originali sono dei rettangoli!
vettoriale vs bitmap 4.o ingrandimento i pixel sono "quadratoni"
vettoriale vs bitmap: riassumendo qui e' riportato in sequenza a destra lo stesso dettaglio (il 2.o rettangolo dal centro) :
concludendo, vettoriale (a sinistra) vs bitmap (a destra) : il file vettoriale contiene le istruzioni per fare l'immagine, e quindi consente una riproduzione esatta con qualunque scala
vettoriale: qui lo schermo dato da Acrobat Reader, le schermate precedenti erano date da un altro programma (Graphic Converter - problemi di spazi bianchi tra una primitiva e l'altra)