Aby skopiować dane bitmapy z jednego obrazu do drugiego, można użyć szeregu metod:
clone()
,
copyPixels()
,
copyChannel()
,
draw()
, and
drawWithQuality()
. Metoda
drawWithQuality
jest dostępna w programie Flash Player 11.3 lub nowszym oraz środowisku AIR 3.3 i nowszym.
Zgodnie z tym, co sugeruje nazwa, metoda
clone()
umożliwia klonowanie i próbkowanie danych bitmapy z jednego obiektu BitmapData do innego. Wywołanie tej metody zwraca nowy obiekt BitmapData, który jest dokładnie sklonowanym obiektem instancji, z której został skopiowany.
W poniższym przykładzie opisano klonowanie kopii pomarańczowego kwadratu (stanowiącego element nadrzędny) i umieszczenie tego sklonowanego obiektu za oryginalnym kwadratem nadrzędnym:
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;
Metoda
copyPixels()
to szybki i prosty sposób na kopiowanie pikseli z jednego obiektu BitmapData do innego. Metoda ta pobiera prostokątną migawkę (zdefiniowaną parametrem
sourceRect
) obrazu źródłowego i kopiuje ją do innego, również prostokątnego obszaru (o podobnej wielkości). Lokalizacja nowo „wklejonego” prostokąta jest zdefiniowana w parametrze
destPoint
.
Metoda
copyChannel()
próbkuje predefiniowany kanał koloru (alfa, czerwony, zielony lub niebieski) ze źródłowego obiektu BitmapData i kopiuje go do kanału docelowego obiektu BitmapData. Wywołanie tej metody nie ma wpływu na inne kanały w docelowym obiekcie BitmapData.
Metody
draw()
i
drawWithQuality()
rysują (renderują) zawartość graficzną źródłowego kształtu, klipu filmowego lub innego obiektu ekranowego do nowej bitmapy. Korzystając z parametrów
matrix
,
colorTransform
,
blendMode
oraz docelowego
clipRect
, można modyfikować sposób, w jaki renderowana jest nowa bitmapa. W metodzie tej w celu wygenerowania danych zastosowano renderowanie wektorowe w programie Flash Player oraz AIR.
Wywołując metodę
draw()
lub
drawWithQuality()
, użytkownik przekazuje obiekt źródłowy (ikonkę, klip filmowy lub inny obiekt ekranowy) jako pierwszy z parametrów zgodnie z poniższym przykładem:
myBitmap.draw(movieClip);
Jeśli do obiektu źródłowego były stosowane jakiekolwiek przekształcenia (kolor, macierz itd.) już po jego załadowaniu, przekształcenia te nie są kopiowane do nowego obiektu. W przypadku zamierzenia skopiowania przekształceń do nowej bitmapy konieczne jest następnie skopiowanie wartości właściwości
transform
z obiektu oryginalnego do właściwości
transform
obiektu Bitmap korzystającego z nowego obiektu BitmapData.