Копирование данных растровых изображений

Flash Player 9 и более поздних версий, Adobe AIR 1.0 и более поздних версий

Для копирования данных одного изображения в другое можно использовать несколько методов: clone(), copyPixels(), copyChannel() и draw().

Как можно догадаться по его имени, метод clone() позволяет клонировать, или дублировать, данные растрового изображения одного объекта BitmapData в другой. При вызове этого метода он возвращает новый объект BitmapData, являющийся точной копией исходного экземпляра.

В примере ниже показано, как клонировать оранжевый квадрат (родитель) и разместить клон рядом с ним.

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() предлагает простой и быстрый способ копирования пикселов одного объекта BitmapData в другой. Метод делает прямоугольный снимок (что определяется параметром sourceRect) исходного изображения и копирует его в другую прямоугольную область того же размера. Расположение вновь «вставленного» прямоугольника определяется параметром destPoint.

Метод copyChannel() дублирует значение канала (альфа, красный, зеленый или синий) исходного объекта BitmapData и копирует его в канал целевого объекта BitmapData. При вызове этого метода остальные каналы целевого объекта BitmapData никак не затрагиваются.

Метод draw() отрисовывает, или визуализирует, графическое содержимое исходного спрайта, ролика или другого экранного объекта в новом растровом изображении. С помощью параметров matrix, colorTransform, blendMode и clipRect (для целевого объекта) можно указывать способ визуализации. Этот метод использует для генерации данных векторный визуализатор проигрывателя Flash Player и среды AIR.

При вызове метода draw() исходный объект (спрайт, ролик или другой экранный объект) передается в качестве первого параметра, как показано ниже.

myBitmap.draw(movieClip);

Если какие-то свойства исходного объекта (цвет, матрица и т.п.) изменялись после того, как он был загружен, они не будут скопированы в новый объект. Если вам нужно скопировать изменения в новый объект, скопируйте значения свойства transform исходного объекта в свойство transform объекта Bitmap, который использует новый объект BitmapData.