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

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

Скопировать данные из одного растрового изображения в другое можно с помощью нескольких методов: clone() , copyPixels() , copyChannel() , draw() и drawWithQuality() (метод drawWithQuality доступен в средах Flash Player 11.3 и AIR 3.3 и более поздних версий).

Как можно догадаться по его имени, метод 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() и drawWithQuality() отрисовывают, или визуализируют, графическое содержимое исходного спрайта, ролика или другого экранного объекта в новом растровом изображении. С помощью параметров matrix , colorTransform , blendMode и clipRect (для целевого объекта) можно указывать способ визуализации. Этот метод использует для генерации данных векторный визуализатор проигрывателя Flash Player и среды AIR.

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

myBitmap.draw(movieClip);

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