该算法将裁剪区域放大到最接近输出尺寸的大小,并且将形成的图像居中处理。
核心算法
/**
* 绘制一个大尺寸可视对象
* @param image 需要绘制的对象
* @param rect 对象绘制区域
* @param outWidth 输出图像的宽度
* @param outHeight 输出图像的高度
* @param maxWidth 单个bitmapdata绘制的极限宽度
* @param maxHeight 单个bitmapdata绘制的极限高度
* */
private function drawBigImage(image:DisplayObject,rect:Rectangle,outWidth:Number,outHeight:Number,maxWidth:Number=1024,maxHeight:Number=1024):BitmapData
{
if(image==null)
{
return null;
}
if(rect==null)
{
rect = new Rectangle(0,0,image.width,image.height);
}
var offsetX:Number = 0;
var offsetY:Number = 0;
var scale:Number = 1;
var outImageWidth:Number = rect.width;
var outImageHeight:Number = rect.height;