Softimax
Home Softimax
 Grafica ad alte prestazioni in VB

Halftone (Error diffusion)
Filtro "Emboss"
Gestione istogrammi
Disegno (Curve Bezier)
Animazione effetto "acqua"
Selezione colore
Esempio di animazione
96 fps (eseguibile)
27 fps (in progettazione)
Pentium III a 800 MHz
Effetto su 100x50 (pixel)
  Fuoco (GIF, 325 Kb)
In questo progetto sono state realizzate due classi utili per gestire la grafica: clsGFX_2D e clsGFX_API

La prima classe è l'applicazione pratica delle conoscenze ottenute frequentando il corso di Elaborazione e Trasmissione delle Immagini (Ing. Informatica di Genova).
Si è partiti da alcune classi prelevate dal web, che fornivano metodi per l'accesso diretto in memoria per la manipolazione dei singoli byte delle immagini. Appoggiandosi a questa base sono stati implementati molti algoritmi per la grafica:
- Estrazione delle informazioni su tinta, intensità e luminanza (hue, saturation, luminance)
- Conversione di un'immagine in una simile con colori limitati e senza sfumature (Halftone con "Dithering" o "Error Diffusion")
- Inversione delle singole componenti cromatiche
- Dissolvenza
- Conversione a B/N (due metodi)
- Ribaltamenti, rotazione e ridimensionamento
- Filtri (Personalizzato, Blur, Soften, Sharpen, Emboss, Gaussian Average, Smoothing, ...)
- Rilevamento dei bordi (Edge detection)
- Vari effetti di animazione (fuoco non disponibile open source)
- Disegno (punti, linee, cerchi, curve di Bezier)
- Sistema di troncamento delle linee al di fuori di un'area (Parametric Clipping Mode e Cohen-Sutherland)
- Recupero degli istogrammi per tutte le componenti colore
- Equalizzazione dell'istogramma colore
E' stato creato quindi un programma che testa tutte le funzioni disponibili. Nel programma è presente anche un sistema per la selezione dei colori che permette di scegliere varie modalità di selezione.
L'algoritmo per generare le animazioni del fuoco non è ancora reso pubblico. Si possono vedere gli effetti nell'eseguibile, ma il codice corrispondente è stato rimosso dai sorgenti.

La seconda classe è un "guscio" delle funzioni presenti nelle Api Win32.
Il suo utilizzo consiste nell'associare la classe ad un particolare hDC di una finestra e poi richiamane i metodi (semplificati) per gestire la grafica. Sono presenti funzioni per:
- copiare blocchi di bit (copia diretta, con trasparenze, con allargamenti)
- impostare la scala (pixel, cm, inch, ...), l'origine e la direzione degli assi X e Y
- disegnare (linee, rettangoli, curve di bezier, ellissi, regioni, spicchi, ...)
- impostare i parametri di desegno (colori, trasparenze, ...)
- gestire le "regioni" personalizzate
- recuperare le capacità del dispositivo legato all'hDC
- stampare un testo (personalizzazione dei colori, del font, trasparenze, clipping, ...)
Questa classe è sicuramente meno performante rispetto ad usare direttamente le funzioni Api, ma il suo utilizzo è giustificato dal fatto che tutte le risorse sono rilasciate correttamente (penne, pennelli, font, handle,...). Inoltre la situazione dell'hDC viene sempre ripristinata al momento del suo rilascio.

Fatene buon uso!

Collegamenti:
  Sezione download

In progress
Studio Pasqulini Salsa
(30%) Sito Internet
Fabio Riccardi
(50%) Sito Internet
Battute di caccia
(90%) Sito Internet
Faita Liguria
(50%) Nuovo sito web
Casm.it
(90%) Nuovo sito web

Hotel Cinque Terre
Hotel Liguria
Valid CSS!