Copia dei dati bitmap

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

Per copiare dati bitmap da un'immagine a un'altra, è possibile usare vari metodi: clone() , copyPixels() , copyChannel() , draw() e drawWithQuality() (il metodo drawWithQuality è disponibile in Flash Player 11.3 e versioni successive e in AIR 3.3 e versioni successive).

Come suggerisce il nome stesso, il metodo clone() consente di clonare, o campionare, i dati bitmap da un oggetto BitmapData a un altro. Quando viene chiamato, il metodo restituisce un nuovo oggetto BitmapData che è un clone esatto dell'istanza originale da cui è stato copiato.

Nell'esempio seguente viene clonata una copia di un quadrato arancione (principale) e viene posizionato il clone accanto al quadrato principale originale:

import flash.display.Bitmap; 
import flash.display.BitmapData; 
 
var myParentSquareBitmap:BitmapData = new BitmapData(100, 100, false, 0x00ff3300); 
var myClonedChild:BitmapData = myParentSquareBitmap.clone(); 
 
var myParentSquareContainer:Bitmap = new Bitmap(myParentSquareBitmap); 
this.addChild(myParentSquareContainer); 
 
var myClonedChildContainer:Bitmap = new Bitmap(myClonedChild); 
this.addChild(myClonedChildContainer); 
myClonedChildContainer.x = 110;

Il metodo copyPixels() rappresenta un modo rapido e facile per copiare i pixel da un oggetto BitmapData a un altro. Il metodo scatta un'istantanea rettangolare (definita dal parametro sourceRect ) dell'immagine di origine e la copia in un'altra area rettangolare (di uguali dimensioni). La posizione del rettangolo incollato viene definita all'interno del parametro destPoint .

Il metodo copyChannel() campiona un valore di canale di colore predefinito (alfa, rosso, verde o blu) da un oggetto BitmapData di origine e lo copia in un canale di un oggetto BitmapData di destinazione. La chiamata a questo metodo non influisce sugli altri canali nell'oggetto BitmapData di destinazione.

I metodi draw() e drawWithQuality() disegnano (renderizzano) in una nuova bitmap il contenuto grafico da uno sprite, clip filmato o altro oggetto di visualizzazione di origine. Mediante i parametri matrix , colorTransform , blendMode e un parametro clipRect di destinazione è possibile modificare il modo di esecuzione del rendering. Questo metodo utilizza il renderer di vettori di Flash Player e AIR per generare i dati.

Quando chiamate draw() o drawWithQuality() , assegnate l'oggetto di origine (sprite, clip filmato o altro oggetto di visualizzazione) come primo parametro, come mostrato di seguito:

myBitmap.draw(movieClip);

Se l'oggetto di origine ha subito delle modifiche (colore, matrice e così via) dopo essere stato originariamente caricato, queste trasformazioni non vengono copiate nel nuovo oggetto. Se desiderate copiare le modifiche nella nuova bitmap, dovete copiare il valore della proprietà transform dall'oggetto originale alla proprietà transform dell'oggetto Bitmap che utilizza il nuovo oggetto BitmapData.