Когда я пытаюсь сохранить масштабированное обрезанное изображение, моя функция сохранения перестает работать, но прекрасно работает, когда изображение не масштабируется. Есть идеи?
Вот мой код:
var loada = new Loader();
loada.load(new URLRequest("img_one.jpg"));
loada.x = 205;
loada.y = 110;
loada.cacheAsBitmap = true;
loada.scaleX = 1.5;
function toCrop():void
{
//Matrix to holder the area to be cropped
var maskRect = loada.mask.getBounds(loada);
//Matrix of image to be cropped
var imgMatrix= loada.mask.transform.matrix;
//Cropped image
var myCroppedImage:Bitmap = crop(maskRect, imgMatrix, loada.mask.width, loada.mask.height, loada );
var m:Matrix = myCroppedImage.transform.matrix;
var urlLoader:URLLoader = new URLLoader();
//Set jpg quality of the image to be export 1-100
var myEncoder:PNGEncoder = new PNGEncoder();
//Create jpg to be exported
var pngSource:BitmapData = new BitmapData (loada.mask.width, loada.mask.height, true, 0x00000000);
pngSource.draw(myCroppedImage, m);
//Create byte array to hold jpg data
var byteArray:ByteArray = PNGEncoder.encode(pngSource);
var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
//Send image to the server to be saved
var savePNG:URLRequest = new URLRequest(glo.bal.base_url+"save_png.php?r="+glo.bal.fb_id+glo.bal.image_extension);
savePNG.requestHeaders.push(header);
savePNG.method = URLRequestMethod.POST;
savePNG.data = byteArray;
urlLoader.addEventListener(Event.COMPLETE, doNothing1);
urlLoader.load(savePNG);
}
function doNothing1(e:Event):void
{
trace ( e );
}
function crop( rect, matrix, _width:Number, _height:Number, displayObject:DisplayObject):Bitmap
{
//Create cropped image
var croppedBitmap:Bitmap = new Bitmap( new BitmapData( _width, _height, true, 0x00000000), PixelSnapping.ALWAYS, true );
croppedBitmap.bitmapData.draw(displayObject, matrix , null, null, rect, true );
return croppedBitmap;
}