GrgrDvrt

Réduire la résolution d'un BitmapData

July 13rd, 2007

cliquez et maintenez la souris enfoncée Pour faire simple, cette classe étend Bitmap du coup l'utilisation est la même que celle d'un bitmap, il suffit simplement d'indiquer la taille du pixel.
  Évidemment cette classe ne peut servir qu'à baisser la résolution.

package com.grgrdvrt.graphics
{

import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.geom.Matrix;

public class PixelsBitmap extends Bitmap
{

private var _imgSource:BitmapData;
private var _res:Number = 1;
private var _matrix:Matrix = new Matrix();

public function PixelsBitmap(image:BitmapData) { bitmapData = image; }


private function _update():void
{
var tempBmp:BitmapData = new BitmapData(_imgSource.width/value, _imgSource.height/value, false, 0);
_matrix.a = _matrix.d = 1 / value;
tempBmp.draw(_imgSource, _matrix);
_matrix.a = _matrix.d = value;
bitmapData.fillRect(bitmapData.rect, 0xFF000000);
bitmapData.draw(tempBmp, _matrix);
tempBmp.dispose();
}

public function set res(value:Number):void
{
_res = Math.max(1, value);
_update();
}

public function get res():Number{ return _res }

override public function set bitmapData(image:BitmapData):void
{
_imgSource = image;
super.bitmapData = _imgSource.clone();
_update();
}
}
}