Kopieren von Bitmapdaten

Flash Player 9 und höher, Adobe AIR 1.0 und höher

Um Bitmapdaten von einem Bild in ein anderes zu kopieren, können Sie verschiedene Methoden verwenden: clone() , copyPixels() , copyChannel() , draw() und drawWithQuality() (die drawWithQuality -Methode ist ab Flash Player 11.3 und ab AIR 3.3 verfügbar).

Mit der clone() -Methode können Sie Bitmapdaten von einem BitmapData-Objekt in ein anderes Objekt klonen. Beim Aufruf dieser Methode wird ein neues BitmapData-Objekt zurückgegeben, das ein exakter Klon der Instanz ist, von der es kopiert wurde.

Im folgenden Beispiel wird eine Kopie eines orangefarbenen (übergeordneten) Quadrats geklont und neben dem übergeordneten Originalquadrat positioniert:

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;

Mit der copyPixels() -Methode können Pixel schnell und einfach von einem BitmapData-Objekt in ein anderes kopiert werden. Bei dieser Methode wird ein rechteckiger Schnappschuss (definiert durch den sourceRect -Parameter) des Quellbilds erstellt und in einen anderen rechteckigen Bereich (mit der gleichen Größe) kopiert. Die Position des neuen „eingefügten“ Rechtecks wird im destPoint -Parameter festgelegt.

Mit der copyChannel() -Methode wird ein vordefinierter Farbkanalwert (Alpha, Rot, Grün oder Blau) eines BitmapData-Quellobjekts in einen Kanal eines BitmapData-Zielobjekts kopiert. Der Aufruf dieser Methode wirkt sich nicht auf die anderen Kanäle im BitmapData-Zielobjekt aus.

Mit den draw() - und drawWithQuality() -Methoden wird der grafische Inhalt eines Sprite-Quellobjekts, MovieClip-Quellobjekts oder eines anderen Anzeigeobjekts in einer neuen Bitmap gezeichnet oder dargestellt. Mithilfe der Parameter matrix , colorTransform , blendMode und clipRect können Sie die Art und Weise ändern, auf die die neue Bitmap dargestellt wird. Diese Methode verwendet die Vektordarstellung in Flash Player und AIR, um die Daten zu generieren.

Beim Aufrufen von draw() oder drawWithQuality() wird das Quellobjekt (Sprite-Objekt, MovieClip-Objekt oder anderes Anzeigeobjekt) als erster Parameter übergeben, wie im Folgenden dargestellt:

myBitmap.draw(movieClip);

Wenn auf das Quellobjekt Transformationen (Farbe, Matrix usw.) angewendet wurden, nachdem es geladen wurde, werden diese Transformationen nicht in das neue Objekt kopiert. Wenn Sie die Transformationen in das neue Bitmapbild kopieren möchten, müssen Sie den Wert der transform -Eigenschaft des Originalobjekts in die transform -Eigenschaft des Bitmap-Objekts kopieren, in dem das neue BitmapData-Objekt verwendet wird.