Bitmapgegevens kopiëren

Flash Player 9 of hoger, Adobe AIR 1.0 of hoger

Voor het kopiëren van bitmapgegevens van de ene afbeelding naar de andere kunt u verschillende methoden gebruiken: clone() , copyPixels() , copyChannel() , draw() en drawWithQuality() . (De methode drawWithQuality is beschikbaar in Flash Player 11.3 en hoger en in AIR 3.3 en hoger.)

Zoals de naam al doet vermoeden, kunt u met de methode clone() bitmapgegevens uit het ene naar het andere object BitmapData klonen. Wanneer deze methode wordt aangeroepen, wordt er een nieuw object BitmapData geretourneerd dat een exacte kloon is van de oorspronkelijke instantie waaruit het object is gekopieerd.

In het volgende voorbeeld wordt een kopie van een oranje (bovenliggend) vierkant gekloond en wordt de kloon naast het oorspronkelijke bovenliggende vierkant geplaatst:

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;

Met de methode copyPixels() kunt u snel en eenvoudig pixels van het ene naar het andere object BitmapData kopiëren. Er wordt een rechthoekige momentopname (gedefinieerd door de parameter sourceRect ) van de bronafbeelding gemaakt en deze wordt naar een ander rechthoekig gebied (van gelijke grootte) gekopieerd. De locatie van de nieuwe geplakte rechthoek wordt gedefinieerd in de parameter destPoint .

Met de methode copyChannel() wordt een vooraf gedefinieerde kleurkanaalwaarde (alfa, rood, groen of blauw) gesampled uit een BitmapData-bronobject en wordt deze gekopieerd naar een kanaal van een BitmapData-doelobject. Wanneer deze methode wordt aangeroepen, heeft dit geen invloed op de andere kanalen in het BitmapData-doelobject.

Met de methoden draw() en drawWithQuality() wordt de grafische inhoud uit een bronsprite, filmclip of een ander weergaveobject getekend, ofwel gerenderd, in een nieuwe bitmap. U kunt de parameters matrix , colorTransform , blendMode en de doelparameter clipRect gebruiken om de wijze waarop de nieuwe bitmap wordt gerenderd te wijzigen. Bij deze methode wordt de vectorrenderer in Flash Player en AIR gebruikt om de gegevens te genereren.

Wanneer u draw() of drawWithQuality() aanroept, geeft u het bronobject (sprite, filmclip of ander weergaveobject) door als de eerste parameter, zoals hier wordt gedemonstreerd:

myBitmap.draw(movieClip);

Als op het bronobject transformaties (kleur, matrix enzovoort) zijn toegepast sinds het is geladen, worden deze niet naar het nieuwe object gekopieerd. Als u de transformaties naar de nieuwe bitmap wilt kopiëren, moet u de waarde van de eigenschap transform uit het oorspronkelijke object kopiëren naar de eigenschap transform van het object Bitmap dat het nieuwe object BitmapData gebruikt.