Bitmap verilerini kopyalama

Flash Player 9 ve üstü, Adobe AIR 1.0 ve üstü

Bir görüntüden diğerine bitmap verisi kopyalamak için kullanabileceğiniz birden fazla yöntem vardır, bunlar: clone(), copyPixels(), copyChannel() ve draw().

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() yöntemi, bir kaynak hareketli grafik, film klibi veya başka bir görüntüleme nesnesinden grafik içeriği 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() yöntemini ç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.