Codifica immagini • Colori: luce fenomeno “analogico” • Ad ogni frequenza dello spettro elettromagnetico visibile corrisponde un preciso colore (con una precisa gradazione) • Un colore può essere ottenuto anche combinando colori diversi – Rosso + Verde = giallo – Blu + Rosso = viola – Etc. etc. Codifica RGB – Red, Green, Blue • Combinando a piacere una luce “rossa”, una luce “verde”, e una “blu” (a varie intensità) possiamo ottenere tantissimi colori diversi, corrispondenti ad una parte dello spettro visibile • Ogni pixel sullo schermo viene rappresentato con una combinazione di tre pixel: rosso, verde e blu (sintesi additiva) – Nota: le stampanti utilizzano la “sintesi sottrattiva” CMYK (ciano, magenta, giallo, nero). Perché? • Variando a piacere l’intensità del rosso, del verde e del blu possiamo ottenere tantissimi colori Codifica RGB • Digitalizzazione – Immagine, insieme di punti (pixel) vicinissimi – Per ogni pixel • 8 bit per il rosso • 8 bit per il verde • 8 bit per il blu – Quindi 256 possibili livelli di intensità per il rosso, 256 possibili livelli per il verde, e 256 per il blu • Domanda: quanti colori possibili possiamo ottenere ? RGB - Esempi • Rosso: 255 - 0 – 0 • Blu: 0 – 0 – 255 • Viola: 255 – 0 – 255 (in esadecimale: FF 00 FF) • Verde: 0 – 255 – 0 • Verde più opaco: 55 – 255 – 55 • In questo caso c’è il verde, ma c’è anche un po’ di rosso e di blu. Codifica RGB • Ogni pixel occupa 24 bit in memoria – 8 + 8 + 8 (RGB) – Un’immagine bitmap con risoluzione 640 x 480, con profondità di 24 bit per pixel (24 bpp), quanto occupa in memoria? – 640 x 480 x 24 = 7.372.800 bit (921 KB circa) • Immagini bmp (bitmap, o raster): sono codificate in questa maniera che abbiamo visto • Le schede video generiche supportano codifiche a 32 bit di profondità – Si usano 24 bit come descritto sopra. I restanti bit si usano per descrivere l’opacità (canale alfa). Tecniche di compressione • Codifica GIF: – Prendo solo i colori usati dall’immagine e li metto in una tavolozza (palette). – I pixel così non vengono più descritti con 24 bit (ma con pochi bit, che indicizzano solo i colori nella tavolozza) • Codifica JPG: – Compressione lossless + lossy Codifica JPG • Divisione dell’immagine in quadretti da 8x8 pixel ciascuno • Per ogni “quadretto” – DCT (trasformata discreta coseno) – Quantizzazione – Eliminazione ridondanze con RLE e Codici di Huffman • In certi casi rapporto compressione 15:1 senza perdita “seria” di qualità. – Livello di compressione comunque regolabile Codifica PNG • Codifica lossless (senza perdita di qualità) – Opzionalmente “lossy” • E’ un’evoluzione della codifica GIF • Si usa spesso per le icone, per immagini semplici – Molto vantaggiosa in questo caso Approfondimento • Fotocamere e videocamere digitali • HDR Codifica vettoriale • Poco fa abbiamo visto la codifica bitmap (raster) • Esiste anche la codifica vettoriale – Non si usa una mappa di pixel, ma una lista di istruzioni di tipo geometrico • Esempio: rectangle(1,5,20,30) • …per costruire un rettangolo, date le sue coordinate • Il programma che gestisce la grafica vettoriale legge le istruzioni vettoriali contenute nel file e riproduce gli oggetti creando la corretta configurazione di pixel sullo schermo Codifica vettoriale • Vantaggio: i file vettoriali occupano poco spazio • Svantaggio: i tempi di riproduzione (rendering) da parte del programma che opera in grafica vettoriale possono essere lunghi • Rasterizzare: trasformare un file vettoriale (es. DWG) in un file bitmap (es. JPG) Software 3D • Blender • Autocad • Maya, 3D Max Approfondimento • Codifica PDF – Codifica ibrida raster/vettoriale GIMP • Software open-source di fotoritocco – alternativa ragionevole al famoso software proprietario Photoshop – http://www.gimp.org/ – Sezione download. Scegliere il sistema operativo (es. windows). – Cliccare su “scarica direttamente” Progetto n. 2 - Fotomontaggio • Fare un fotomontaggio usando il GIMP