您的位置:首页 > 其它

flash加载外部图片等比缩放类(as3)

2011-03-18 11:53 459 查看
package com.sunxinzhe.display
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.DisplayObject;
import flash.display.IBitmapDrawable;
import flash.geom.Matrix;
import flash.geom.Rectangle;

/**
* ...图像数据处理工具
*/
public class BitmapUtil
{

/**
* 获取按指定尺寸等比例缩放+居中的截图
* @param	target        目标对象
* @param	tarW          目标尺寸(宽)
* @param	tarH          目标尺寸(高)
* @param	full          是否显示图片全貌
* @return
*/
public static function getZoomDraw(target:DisplayObject, tarW:int, tarH:int,full:Boolean=true):BitmapData {
//获取显示对象矩形范围
var rect:Rectangle = target.getBounds(target);
//计算出应当缩放的比例
var perw = tarW / rect.width;
var perh = tarH / rect.height;
var scale = full?((perw <= perh)?perw:perh):((perw <= perh)?perh:perw);
//计算缩放后与规定尺寸之间的偏移量
var offerW = (tarW - rect.width * scale) / 2;
var offerH = (tarH - rect.height * scale) / 2;
//开始绘制快照(这里透明参数是false,是方便观察效果,实际应用可改为true)
var bmd:BitmapData = new BitmapData(tarW, tarH, false, 0);
var matrix:Matrix = new Matrix();
matrix.scale(scale, scale);
matrix.translate( offerW, offerH);
bmd.draw(target, matrix);
//如果是bitmap对象,释放位图资源
if (target is Bitmap)   (target as Bitmap).bitmapData.dispose();
//返回截图数据
return bmd;
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: