Redimencionando um BitmapData usando Matrix – AS3

Quando um bitmap (imagem) é reduzido usando os métodos scaleX e scaleY ou largura e altura, o mesmo bitmap parece ter mudado, mas o tamanho realmente não.

Isso acontece porque o BitmapData da imagem permaneceu o mesmo, então a dimensão em memória é a mesma, mesmo se tivéssemos reduzido a imagem para 10%.

Para Redmensionar a dimensão da imagem em memória , devemos usar o método Draw da classe BitmapData e a classe Matrix.

Muitos Util para a criação de Thumbs (Miniaturas).

Código :

//BitmapData do Bitmap Original
var BitmapDataOriginal:BitmapData= BitmapOriginal.bitmapData;

//Fator de Escala numérica 0.5
var FatordeEscala:Number=0.5;

// Nova largura e altura sendo que (x = b * a)
var novoWidth:Number  = BitmapDataOriginal.width  * FatordeEscala;
var novoHeight:Number = BitmapDataOriginal.height * FatordeEscala;

// BitmapData escalonado com as dimensões novas
var BitmapDataScalado:BitmapData=new BitmapData(novoWidth,novoHeight,true,0xFFFFFFFF);

//Matrix
var Matrix:Matrix=new Matrix();

//Escala da Matrix de redimensionamento (0.5,0.5)
Matrix.scale(FatordeEscala,FatordeEscala);

// Bitmap Escalonado, Draw(desenha) o Bitmap original de acordo com o fator de escala da Matrix
BitmapDataScalado.draw(BitmapDataOriginal,Matrix);

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s