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-2007 23: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
0.072 0.072 scale
8149 250 translate 90 rotate
1 setlinejoin 1 setlinecap 1 SLW 1 SCF
%%EndPageSetup
%%PageBoundingBox: (atend)
... 0.000 0.000 0.000 setrgbcolor 1373 23 BP 7753 0 LP 0 7753 LP -7753 ... LP -26 108 LP -29 107 LP -32 106 LP -36 105 LP 40 103 LP -42 103 LP -46 101 LP -49 99 LP -51 98 LP -55 97 LP
... 1.000 1.000 1.000 setrgbcolor 6884 4627 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 ... 0.000 0.000 0.000 setrgbcolor 1.000 1.000 1.000
setrgbcolor 5083 5259
BP -2 1 LP 0 0 LP -23 14 LP 0 0 LP -10 6 LP -1 2 LP 8 1 EP
... PGPLOT restore showpage
%%PageTrailer
%%PageBoundingBox: 24 114 588 678 %%Trailer
%%BoundingBox: 24 114 588 678 %%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
[[2978000bytes]]
%ƒÂÚÂÎßÛ†–ƒ∆
2 0 obj
<< /Length 4 0 R /Filter /FlateDecode >>
stream
x⁄ÏΩÀ≤$ÀÆ 6«WƒXfjff‰s¨Å∆˙ Ø&˚ »˚ˇf
º<∫Ît=rôD^ i ˚‰Æïï 8‡^ ‡øóˇ´¸˜Ú_˛èˇòÀ•˝è ... ùÌøó•⁄’ˆÔyoœ≤Ø◊ØΩ=`øz.ø¶eµ´”—V@⁄’c˝5Okªv
...
Å 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
<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 1 0 R ] >>
endobj
10 0 obj
<< /Type /Catalog /Pages 6 0 R >>
endobj
11 0 obj
<< /CreationDate (D:20070211201345+01'00') /ModDate (D:20070211201345+01'00')
/Producer (Mac OS X 10.4.8 Quartz PDFContext) >> endobj
xref
0 12
0000000000 00000 n
0002976748 00000 n
...
0002977937 00000 n
0002977987 00000 n
trailer
<< /Size 12 /Root 10 0 R /Info 11 0 R /ID [ <779832d0b77bc297fdeb607c9b9d6779>
<779832d0b77bc297fdeb607c9b9d6779> ] >>
startxref
2978130
%%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 bitmap (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)
Scarica

EGD05_VectorVsBitmap