Classes Bitmap e BitmapData

Flash Player 9 e posterior, Adobe AIR 1.0 e posterior

As principais classes do ActionScript 3.0 para trabalhar com imagens de bitmpa são a classe Bitmap, que é usada para exibir as imagens de bitmap na tela, e a classe BitmapData, usada para acessar e manipular os dados brutos de imagem de um bitmpa.

Compreensão da classe Bitmap

Como uma subclasse da classe DisplayObject, a classe Bitmap é a principal classe do ActionScript 3.0 usada para exibir imagens de bitmap. Essas imagens podem ter sido carregadas através da classe flash.display.Loader ou criada dinamicamente com o construtor Bitmap() . Durante o carregamento de uma imagem a partir de uma fonte externa, um objeto Bitmap pode usar apenas imagens nos formatos GIF, JPEG ou PNG. Depois de instanciado, a ocorrência de Bitmap pode ser considerada um wrapper para um objeto BitmapData que precisa ser renderizado no Palco. Como uma ocorrência de bitmap é um objeto de exibição, todos os recursos e funcionalidade dos objetos de exibição também podem ser usados para manipular uma ocorrência de Bitmap. Para obter mais informações sobre como trabalhar com objetos de exibição, consulte Programação de exibição .

Encaixe e suavização de pixels

Além da funcionalidade comum para todos os objetos de exibição, a classe Bitmap fornece alguns recursos adicionais que são específicos para imagens bitmaps.

A propriedade pixelSnapping da classe Bitmap determina se um objeto Bitmap se encaixa ou não no seu pixel mais próximo. Essa propriedade aceita uma das três constantes definidas na classe PixelSnapping: ALWAYS , AUTO e NEVER .

A sintaxe para aplicação de encaixe de pixel como se segue:

myBitmap.pixelSnapping = PixelSnapping.ALWAYS;

Frequentemente, quando imagens de bitmap são escalada, elas ficam borradas e distorcidas. Para ajudar a reduzir essa distorção, use a propriedade smoothing da classe BitmapData. Essa propriedade Boolean, quando definida como true , suaviza os pixels dentro da imagem quando ela é escalada. Isso dá à imagem uma aparência mais clara e natural.

Compreensão da classe BitmapData

A classe BitmapData, que está no pacote flash.display, pode ser comparada a um snapshot fotográfico de pixels contido em um imagem de bitmap carregada ou criada dinamicamente. Esse snapshot é representado por uma matriz de dados de pixel dentro do objeto. A classe BitmapData também contém uma série de métodos incorporados que são utilizados para a criação e a manipulação de dados de pixel.

Para instanciar um objeto BitmapData, use o seguinte código:

var myBitmap:BitmapData = new BitmapData(width:Number, height:Number, transparent:Boolean, fillColor:uinit);

Os parâmetros width e height especificam o tamanho do bitmap. A partir do AIR 3 e do Flash player 11, os limites de tamanho de um objeto BitmapData foram removidos. O tamanho máximo de um bitmap depende do sistema operacional.

No AIR 1.5 e no Flash Player 10, o tamanho máximo de um objeto BitmapData é de 8.191 pixels de largura ou de altura, e o número total de pixels não pode exceder 16.777.215 pixels. (Dessa forma, caso um objeto BitmapData tenha 8.191 pixels de largura, ele só pode ter 2.048 pixels de altura.) No Flash Player 9 e anteriores e no AIR 1.1 e anteriores, a limitação é de 2.880 de altura e de 2.880 pixels de largura.

O parâmetro transparent especifica se os dados de bitmap incluem um canal alfa ( true ) ou não ( false ). O parâmetro fillColor é um valor de cor de 32 bits que especifica a cor de plano de fundo, bem como o valor de transparência (se ele tiver sido definido como true ). O exemplo a seguir cria um objeto BitmapData com plano de fundo laranja que é 50% transparente.

var myBitmap:BitmapData = new BitmapData(150, 150, true, 0x80FF3300);

Para renderizar um objeto BitmapData criado recentemente na tela, atribua-o ou envolva-o em uma ocorrência de Bitmap. Para fazer isso, você pode transmitir o objeto BitmapData como um parâmetro do construtor de objeto Bitmap ou atribuí-lo à propriedade bitmapData de uma ocorrência de Bitmap existente. Você também deve adicionar a ocorrência de Bitmap à lista de exibição chamando os métodos addChild() ou addChildAt() do contêiner de objeto de exibição que conterá a ocorrência de Bitmap. Para obter mais informações sobre como trabalhar com a lista de exibição, consulte Adição de objetos de exibição à lista de exibição .

O exemplo a seguir cria um objeto BitmapData com preenchimento vermelho e exibe-o em uma ocorrência de Bitmap.

var myBitmapDataObject:BitmapData = new BitmapData(150, 150, false, 0xFF0000); 
var myImage:Bitmap = new Bitmap(myBitmapDataObject); 
addChild(myImage);