Vous disposez de plusieurs méthodes pour copier les données bitmap d’une image à une autre :
clone()
,
copyPixels()
,
copyChannel()
,
draw()
et
drawWithQuality()
(la méthode
drawWithQuality
est disponible dans Flash Player 11.3 et les versions ultérieures et dans AIR 3.3 et les versions ultérieures).
Comme son nom l’indique, la méthode
clone()
permet de cloner, ou échantillonner, des données bitmap d’un objet BitmapData à un autre. Cette méthode renvoie un nouvel objet BitmapData qui est un clone exact de l’occurrence originale.
L’exemple suivant clone une copie d’un carré orange (parent) et place le clone à côté du carré parent original :
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;
La méthode
copyPixels()
permet de copier rapidement et aisément des pixels d’un objet BitmapData dans un autre. Cette méthode prend un « cliché » rectangulaire (défini par le paramètre
sourceRect
) de l’image source et le copie dans une autre zone rectangulaire de taille égale. L’emplacement du rectangle ainsi « collé » est défini par le paramètre
destPoint
.
La méthode
copyChannel()
analyse une valeur de canal de couleur prédéfini (alpha, rouge, vert ou bleu) dans un objet source BitmapData et la copie dans un canal donné de l’objet BitmapData de destination. Cette méthode n’affecte pas les autres canaux de l’objet BitmapData de destination.
Les méthodes
draw()
et
drawWithQuality()
dessinent ou affichent le contenu graphique d’un objet d’affichage source (Sprite, Clip, etc.) dans un nouveau bitmap. Les paramètres
matrix
,
colorTransform
,
blendMode
et
clipRect
permettent de modifier l’aspect du nouveau bitmap. Cette méthode utilise le programme de rendu vectoriel de Flash Player et AIR pour générer les données.
Pour appeler la méthode
draw()
ou
drawWithQuality()
, vous devez lui transmettre l’objet source (Sprite, Clip ou tout autre objet d’affichage) comme premier paramètre, comme ci-dessous :
myBitmap.draw(movieClip);
Si des transformations (couleur, matrice, etc.) ont été appliquées à l’objet source après son chargement, ces transformations ne sont pas copiées dans le nouvel objet. Pour copier les transformations dans le nouveau bitmap, vous devez copier la valeur de la propriété
transform
de l’objet original dans la propriété
transform
de l’objet Bitmap qui utilise le nouvel objet BitmapData.