Bir görüntüden diğerine bitmap verilerini kopyalamak için birkaç yöntem kullanabilirsiniz:
clone()
,
copyPixels()
,
copyChannel()
,
draw()
ve
drawWithQuality()
(
drawWithQuality
yöntemi Flash Player 11.3 ve üstünde; AIR 3.3 ve üstünde mevcuttur).
Adından da anlaşılacağı üzere,
clone()
yöntemi bir BitmapData nesnesinden bir diğerine bitmap verilerini klonlamanızı veya örneklemenizi sağlar. Yöntem çağrıldığında orijinal örneğin birebir kopyası olan yeni bir BitmapData nesnesi döndürür.
Aşağıdaki örnek turuncu (üst) kareyi klonlar ve bu kopyayı orijinal üst karenin arkasında yerleştirir:
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;
copyPixels()
yöntemi bir BitmapData nesnesinden bir diğerine piksel kopyalamanın hızlı ve kolay bir yoludur. Bu yöntem kaynak görüntünün dikdörtgen şeklinde bir anlık görüntüsünü alır (
sourceRect
parametresi ile tanımlanır) ve dikdörtgen şeklindeki başka bir alana (aynı boyutta) kopyalar. Yeni "yapıştırılan" dikdörtgenin konumu
destPoint
parametresi ile tanımlanır.
copyChannel()
yöntemi kaynak BitmapData nesnesinden önceden tanımlı bir renk kanalı değeri (alfa, kırmızı, yeşil veya mavi) örnekler ve hedef BitmapData nesnesinin kanalına kopyalar. Bu yöntemi çağırmak hedef BitmapData nesnesinin diğer kanallarını etkilemez.
draw()
ve
drawWithQuality()
yöntemi; bir kaynak hareketli grafik, film klibi veya başka bir görüntüleme nesnesindeki grafik içeriğini yeni bir bitmap üzerinde çizer veya oluşturur.
matrix
,
colorTransform
,
blendMode
ve
clipRect
parametrelerini kullanarak yeni bitmap'in oluşturulma şeklini değiştirebilirsiniz. Bu yöntem verileri oluşturmak için Flash Player ve AIR içerisindeki vektör oluşturucuyu kullanır.
draw()
veya
drawWithQuality()
öğesini çağırdığınızda kaynak nesneyi (hareketli grafik, film klibi veya başka bir görüntüleme nesnesi) burada gösterildiği şekilde birinci parametre olarak iletirsiniz:
myBitmap.draw(movieClip);
Kaynak nesne ilk yüklendikten sonra herhangi bir dönüştürme (renk, matrix, vs.) uygulandıysa, bu dönüştürmeler yeni nesneye kopyalanmaz. Dönüştürmeleri yeni bitmap'e kopyalamak isterseniz, orijinal nesnenin
transform
özelliği değerini yeni BitmapData nesnesini kullanan Bitmap nesnesinin
transform
özelliğine kopyalamanız gerekir.