Вы можете сделать это, просматривая пиксели, по одному за раз, начиная с верхнего левого и нижнего правого, пока не найдете не белый пиксель. Вроде как это ...
Первое использование getPixel
var j:Number = 0;
var i:Number = 0;
var tl_corner:Point; // top left corner
var br_corner:Point; // bottom right corner
for (j = 0; j < imageBitmapData.height; j++) {
for (i = 0; i < imageBitmapData.width; i++) {
if (imageBitmapData.getPixel(i, j) != 0xFFFFFF) {
tl_corner = new Point(i, j)
}
}
}
for (j = imageBitmapData.height - 1; j >= 0; j--) {
for (i = imageBitmapData.width - 1; i >= 0; i--) {
if (imageBitmapData.getPixel(i, j) != 0xFFFFFF) {
br_corner = new Point(i, j)
}
}
}
Теперь у вас есть верхний левый и нижний правый углы фактического изображения без белого.
Теперь используйте copyPixels
var bmd:BitmapData = new BitmapData(br_corner.x - tl_corner.x, br_corner.y - tl_corner.y, false, 0x00000000);
bmd.copyPixels(imageBitmapData, new Rectangle(tl_corner.x, tl_corner.y, (br_corner.x - tl_corder.y), (br_corner.y - tl_corner.y)), new Point(0, 0));
Теперь у вас есть объект BitmapData с необходимыми пикселями. Делай с этим как хочешь, может быть:
var s:Sprite = new Sprite();
var bmp:Bitmap = new Bitmap(bmd);
s.addChild(bmp);