九宫切割

function reslice():void
{
var bmpData:BitmapData = new BitmapData(_width, _height, true, 0x0);
var rows:Array = [0, _slicingRect.top, _slicingRect.bottom, _oriBitmap.height];
var cols:Array = [0, _slicingRect.left, _slicingRect.right, _oriBitmap.width];

var dRows:Array = [0, _slicingRect.top, _height-(_oriBitmap.height-_slicingRect.bottom), _height];
var dCols:Array = [0, _slicingRect.left, _width-(_oriBitmap.width-_slicingRect.right), _width];
var origin:Rectangle;
var draw:Rectangle;
var mat:Matrix = new Matrix();
bmpData.lock();
for (var cx:int=0;cx<3;cx++)
{
for (var cy:int=0;cy<3;cy++)
{
origin = new Rectangle(cols[cx], rows[cy], cols[cx+1]-cols[cx], rows[cy+1]-rows[cy]);
draw = new Rectangle(dCols[cx], dRows[cy], dCols[cx+1]-dCols[cx], dRows[cy+1]-dRows[cy]);

mat.identity();

mat.a = draw.width/origin.width;
mat.d = draw.height/origin.height;

mat.tx = draw.x-origin.x*mat.a;
mat.ty = draw.y-origin.y*mat.d;

bmpData.draw(_oriBitmap, mat, null, null, draw, smoothing);
}
}
bmpData.unlock();
if (this.bitmapData)
this.bitmapData.dispose();

this.bitmapData = bmpData;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值