Nuove funzionalità

Nelle sezioni seguenti vengono descritte alcune delle nuove funzionalità di GDI+.

Pennelli sfumati

GDI+ espande le possibilità offerte da GDI fornendo pennelli sfumati lineari e a percorso specificato, per riempire forme, percorsi e regioni. È inoltre possibile utilizzare i pennelli sfumati per tracciare linee, curve e percorsi. Un pennello sfumato lineare consente di riempire una forma con un colore che sfuma gradatamente in un altro colore lungo la forma. Si supponga ad esempio di creare un pennello sfumato orizzontale specificando il colore blu per l'estremità sinistra di una forma e il verde per l'estremità destra. Quando si riempie la forma con il pennello sfumato orizzontale, il colore passa gradualmente da blu a verde a partire dall'estremità sinistra. In una forma riempita con un pennello sfumato verticale definito in modo simile il colore sfuma gradatamente dall'alto verso il basso. Nell'immagine seguente vengono mostrate un'ellisse riempita con un pennello sfumato orizzontale e una regione riempita con un pennello sfumato diagonale.

Quando si riempie un'immagine con un pennello sfumato a percorso specificato, sono disponibili svariate opzioni per specificare le sfumature dei colori da una porzione all'altra della forma. È ad esempio possibile definire un colore per il centro e uno per i margini, in modo che i pixel sfumino gradualmente da un colore all'altro verso l'esterno a partire dal centro della forma. Nell'illustrazione che segue viene mostrato un percorso (creato utilizzando una coppia di spline Bézier) riempito con un pennello sfumato a percorso specificato.

Spline di tipo Cardinal

GDI+ supporta le spline di tipo Cardinal, non supportate in GDI. Una spline di tipo Cardinal è costituita da una sequenza di curve individuali unite per creare una curva più ampia. La curva spline viene specificata da una matrice di punti e passa attraverso tutti i punti della matrice. Una spline di tipo Cardinal attraversa in modo uniforme (senza cambiamenti netti) ogni punto della matrice e risulta quindi di qualità migliore rispetto a un percorso creato unendo delle linee rette. Nell'immagine seguente vengono mostrati due percorsi, uno creato come spline di tipo Cardinal e l'altro tramite l'unione di linee rette.

Oggetti di percorso indipendenti

In GDI un percorso appartiene a un contesto di periferica e viene eliminato non appena viene tracciato. In GDI+ il percorso viene tracciato da un oggetto Graphics ed è possibile creare e conservare svariati oggetti GraphicsPath distinti dall'oggetto Graphics. L'oggetto GraphicsPath non viene distrutto dall'operazione di disegno, quindi è possibile utilizzare più volte lo stesso oggetto GraphicsPath per tracciare un percorso.

Trasformazioni e oggetto Matrix

In GDI+ è disponibile l'oggetto Matrix, uno strumento efficiente che facilita e rende flessibili le trasformazioni (rotazioni, traslazioni e così via). L'oggetto Matrix viene utilizzato insieme agli oggetti che subiscono la trasformazione. Un oggetto GraphicsPath dispone ad esempio di un metodo Transform che riceve un oggetto Matrix come argomento. È possibile memorizzare una trasformazione o una sequenza di trasformazioni in una singola matrice 3×3. Nell'immagine seguente viene mostrato un percorso prima e dopo una sequenza di due trasformazioni (modifica delle proporzioni e rotazione).

Regioni scalabili

GDI+ espande notevolmente le possibilità offerte da GDI grazie al supporto delle regioni. In GDI le regioni vengono memorizzate nelle coordinate delle periferiche e l'unica trasformazione applicabile alle regioni è la traslazione. In GDI+ le regioni vengono memorizzate in coordinate indipendenti ed è possibile sottoporre le regioni a tutte le trasformazioni (ad esempio la modifica delle proporzioni) memorizzabili in una matrice di trasformazione. Nell'immagine seguente viene mostrata una regione prima e dopo una sequenza di tre trasformazioni (modifica delle proporzioni, rotazione e traslazione).

Alpha Blending

Si noti che nell'immagine precedente la regione non trasformata (con colore di riempimento rosso) risulta visibile attraverso la regione trasformata (riempita con un pennello tratteggiato orizzontale blu). Questa possibilità viene fornita dall'alpha blending, supportata da GDI+. L'alpha blending consente di specificare la trasparenza di un colore di riempimento. Il colore trasparente viene fuso con il colore dello sfondo: più è trasparente il colore di riempimento, più visibile risulterà il colore dello sfondo. Nell'immagine seguente vengono mostrate quattro ellissi con lo stesso colore di riempimento, rosso, ma con diverso livello di trasparenza.

Supporto di più formati di immagini

In GDI+ sono disponibili le classi Image, Bitmap e Metafile, che consentono di caricare, salvare e modificare immagini in svariati formati. Sono supportati i seguenti formati:

  • BMP
  • GIF
  • JPEG
  • EXIF
  • PNG
  • TIFF
  • ICON
  • WMF
  • EMF