Cópia de dados de bitmap

Flash Player 9 e posterior, Adobe AIR 1.0 e posterior

Para copiar dados bitmap de uma imagem para a outra, você pode usar vários métodos: clone() , copyPixels() , copyChannel() , draw() e drawWithQuality() (método drawWithQuality disponível no Flash Player 11.3 e superior; AIR 3.3 e superior).

Como o nome sugere, o método clone() permite clonar, ou obter uma amostra, dos dados de bitmap de um objeto BitmapData para outro. Quando chamado, o método retorna um novo objeto BitmapData que é um clone exato da ocorrência original do qual foi copiado.

O exemplo a seguir clona uma cópia de um quadrado (pai) laranja e coloca o clone ao lado do quadrado pai 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;

O método copyPixels() é um modo fácil e rápido de copiar pixels de um objeto BitmapData para outro. O método obtém um snapshot retangular (definido pelo parâmetro sourceRect ) da imagem de origem e a copia para outra área retangular (de tamanho igual). O local do retângulo "colado" recentemente é definido dentro do parâmetro destPoint .

O método copyChannel() fornece amostras de um valor de canal de cor predefinido (alfa, vermelho, verde ou azul) de um objeto BitmapData de origem e o copia para um canal de um objeto BitmapData de destino. Chamar esse método não afeta os outros canais no objeto BitmapData de destino.

Os métodos draw() e drawWithQuality() desenham ou renderizam o conteúdo gráfico de um sprite de origem, clipe de filme ou outro objeto de exibição em um novo bitmap. Usando matrix , colorTransform , blendMode e os parâmetros de destino clipRect , você pode modificar a forma na qual o novo bitmap é renderizado. Esse método usa o processador de vetor no Flash Player e no AIR para gerar os dados.

Ao chamar draw() ou drawWithQuality() , você passa o objeto de origem (sprite, clipe de filme ou outro objeto de exibição) como o primeiro parâmetro, como demonstrado aqui:

myBitmap.draw(movieClip);

Se o objeto de origem teve qualquer transformação (cor, matriz etc.) aplicada a ele depois que ele foi originalmente carregado, essas transformações não serão copiadas para o novo objeto. Se você quiser copiar as transformações para o novo bitmap, será necessário copiar o valor da propriedade transform do objeto original para a propriedade transform do objeto Bitmap que usa o novo objeto BitmapData.