Classi Bitmap e BitmapData

Flash Player 9 e versioni successive, Adobe AIR 1.0 e versioni successive

Le classi ActionScript 3.0 principali per l'utilizzo di immagini bitmap sono la classe Bitmap, utilizzata per visualizzare le immagini bitmap sullo schermo, e la classe BitmapData, utilizzata per accedere e manipolare i dati immagine originari di una bitmap.

Nozioni fondamentali sulla classe Bitmap

In quanto sottoclasse della classe DisplayObject, la classe Bitmap è la classe principale di ActionScript 3.0 per la visualizzazione delle immagini bitmap. Queste immagini possono essere state caricate tramite la classe flash.display.Loader o create dinamicamente utilizzando il costruttore Bitmap() . Quando si carica un'immagine da un'origine esterna, un oggetto Bitmap può utilizzare solo immagini in formato GIF, JPEG o PNG. Una volta creata, l'istanza Bitmap può essere considerata come un wrapper di un oggetto BitmapData di cui è necessario effettuare il rendering sullo stage. Dal momento che un'istanza Bitmap è un oggetto di visualizzazione, per manipolarla è possibile utilizzare tutte le caratteristiche e le funzionalità degli oggetti di visualizzazione. Per ulteriori informazioni sulle operazioni con gli oggetti di visualizzazione, vedete Programmazione degli elementi visivi .

Aggancio ai pixel e attenuazione

Oltre alle funzionalità comuni a tutti gli oggetti di visualizzazione, la classe Bitmap fornisce alcune caratteristiche aggiuntive specifiche delle immagini bitmap.

La proprietà pixelSnapping della classe Bitmap determina se un oggetto Bitmap si aggancia o meno al pixel più vicino. Questa proprietà accetta una delle tre costanti definite nella classe PixelSnapping: ALWAYS , AUTO e NEVER .

La sintassi per applicare l'aggancio ai pixel è la seguente:

myBitmap.pixelSnapping = PixelSnapping.ALWAYS;

Spesso, quando le immagini bitmap vengono modificate in scala, diventano sfocate e distorte. Per ridurre questa distorsione, utilizzate la proprietà smoothing della classe BitmapData. Questa proprietà booleana, se impostata su true , attenua (mediante antialiasing) i pixel all'interno dell'immagine quando quest'ultima viene modificata in scala. In questo modo, l'aspetto dell'immagine risulta più chiaro e naturale.

Nozioni fondamentali sulla classe BitmapData

La classe BitmapData, che si trova nel pacchetto flash.display, può essere paragonata a una fotografia istantanea dei pixel contenuti in un'immagine bitmap caricata o creata dinamicamente. Questa istantanea è rappresentata da un array di dati pixel all'interno dell'oggetto. La classe BitmapData contiene anche una serie di metodi incorporati utili per la creazione e la manipolazione dei dati pixel.

Per creare un'istanza di un oggetto BitmapData, utilizzate il codice seguente:

var myBitmap:BitmapData = new BitmapData(width:Number, height:Number, transparent:Boolean, fillColor:uinit);

I parametri width e height specificano la dimensione della bitmap. A partire da AIR 3 e Flash player 11, i limiti di dimensioni per un oggetto BitmapData sono stati rimossi. La dimensione massima di una bitmap ora dipende dal sistema operativo.

In AIR 1.5 e Flash Player 10, la dimensione massima di un oggetto BitmapData è di 8.191 pixel in larghezza o altezza, mentre il numero totale di pixel non può essere superiore a 16.777.215. (Quindi, se un oggetto BitmapData ha una larghezza di 8.191 pixel, può avere solo una lunghezza di 2.048 pixel.) In Flash Player 9 e versioni precedenti e in AIR 1.1 e versioni precedenti, la limitazione è di 2.880 pixel in altezza e 2.880 pixel in larghezza.

Il parametro transparent specifica se i dati bitmap includono un canale alfa ( true ) o meno ( false ). Il parametro fillColor è un valore di colore a 32 bit che specifica il colore di sfondo, oltre che il valore della trasparenza (se è stato impostato su true ). Nell'esempio seguente viene creato un oggetto BitmapData con uno sfondo arancione trasparente per il 50%.

var myBitmap:BitmapData = new BitmapData(150, 150, true, 0x80FF3300);

Per effettuare il rendering di un oggetto BitmapData appena creato sullo schermo, assegnatelo o racchiudetelo in un'istanza Bitmap. A tale scopo, passate l'oggetto BitmapData come parametro della funzione di costruzione dell'oggetto Bitmap oppure assegnatelo alla proprietà bitmapData di un'istanza Bitmap esistente. Aggiungete, inoltre, l'istanza Bitmap all'elenco di visualizzazione chiamando i metodi addChild() o addChildAt() del contenitore dell'oggetto di visualizzazione che deve contenere l'istanza. Per ulteriori informazioni sulle operazioni con l'elenco di visualizzazione, vedete Aggiunta di oggetti di visualizzazione all'elenco di visualizzazione .

Nell'esempio seguente viene creato un oggetto BitmapData con un riempimento rosso e viene visualizzato in un'istanza Bitmap:

var myBitmapDataObject:BitmapData = new BitmapData(150, 150, false, 0xFF0000); 
var myImage:Bitmap = new Bitmap(myBitmapDataObject); 
addChild(myImage);