/** * * *-------------------* * | *** 图片分割 *** | * *-------------------* * * 编辑修改收录:fengzi(疯子、wu341、wgq341) * * 不会写代码,我是代码搬运工。 * * 联系方式:QQ(493712833)。 * * 随 笔: https://www.cnblogs.com/fengziwu/ * * 版权协议:请自觉遵守LGPL协议,欢迎修改、复制、转载、传播给更多需要的人。 * 免责声明:任何因使用此软件导致的纠纷与软件/程序开发者无关。 * 日 期: 2019.05.08 * */ package fengzi.bmd { import flash.display.Sprite; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.display.Bitmap; import flash.geom.Point; public class ImgSegmentation extends Sprite { private var bitmapData:BitmapData; private var _cols:uint; private var _rows:uint; //private var _imgArr:Array = new Array(); private var _w:uint = 0; private var _h:uint = 0; private var space:uint=0 /*** * ImgSegmentation 图片分割 * @param img 图片对象 * @param _cols 分割图片的横向个数 * @param _rows 分割图片的纵向个数 * @param space 分割图片的间隔 ***/ public function ImgSegmentation(img:*,_cols:uint=5,_rows:uint = 5,space:uint=1) { this._cols = _cols; this._rows = _rows; this.space=space init(img); } private function init(img:*):void { bitmapData = new BitmapData(img.width,img.height,false,0); bitmapData.draw(img); _w = bitmapData.width / _cols; _h = bitmapData.height / _rows; for (var i:int=0; i<_rows; i++) { for (var j:int=0; j<_cols; j++) { var _imgCell:BitmapData = new BitmapData(_w,_h); //关键:从原图中复制相应的小区域像素到imgCell中 _imgCell.copyPixels(bitmapData, new Rectangle(j*_w,i*_h,_w,_h), new Point()); var _sprite:Sprite = new Sprite(); _sprite.addChild(new Bitmap(_imgCell)); //定位 _sprite.x = j * (_w+space); _sprite.y = i * (_h+space); addChild(_sprite); //_imgArr.push(_sprite); } } } } }