I am trying to copy pixels from a user scaled bitmap into a 50x50 target area. I am not seeing the new bitmap does not reflect the scaling of the initial bitmap. Any help would be greatly appreciated.
function onSliderChange(e:SliderEvent):void
{
scaleClip(slider.value, dynamicX, dynamicY);
dynamicX = holder_mc.x;
dynamicY = holder_mc.y;
trace ("x " + dynamicX); // new X after move test 205
trace ("y " + dynamicY); // new Y after move test 140
}
// scale image from center
function scaleClip(val:int, dynamicX:Number, dynamicY:Number):void
{
var trueScl:Number = val/100;
holder_mc.scaleX = holder_mc.scaleY = trueScl;
holder_mc.x = clipNativeX-holder_mc.width*.5;
holder_mc.y = clipNativeY-holder_mc.height*.5;
dynamicX = holder_mc.x;
dynamicY = holder_mc.y;
dynamicW = holder_mc.width;
dynamicH = holder_mc.height;
trace("dynamicX from scale " + dynamicX);
trace("dynamicY from scale " + dynamicY);
trace("dynamicW from scale " + dynamicW);
trace("dynamicH from scale " + dynamicH);
defineCrop(dynamicW, dynamicH, dynamicX, dynamicY)
}
function defineCrop(dynamicW:Number, dynamicH:Number, dynamicX:Number, dynamicY:Number):void
{
var newX = holder_mc.x - holderXStart; // need to find the place before it is moved
var newY = holder_mc.y - holderYStart;
var imageBMPData:BitmapData;
var bmpWidth:int = Math.abs(cropAreaW);
var bmpHeight:int = Math.abs(cropAreaH);
imageBMP = new BitmapData(holder_mc.width,holder_mc.height);
imageBMP.draw(holder_mc, new Matrix());
var cropAreaX:Number = (holderW/2) - (cropAreaW/2); //done
var cropAreaY:Number = (holderH/2) - (cropAreaH/2); //done
imageBMPData = new BitmapData(cropAreaW, cropAreaH);
imageBMPData.copyPixels(imageBMP, new Rectangle(cropAreaX - newX,cropAreaY - newY,cropAreaW,cropAreaH), new Point(0,0));
createCrop(imageBMPData);
}
//var byteArray:ByteArray = new JPGEncoder( 90 ).encode(imageBMP);
// save as SO
function createCrop(imgd:BitmapData)
{
// Setup a holder mc to hold the clipped image
holder = new MovieClip();
addChild(holder);
var cropClip:Bitmap = new Bitmap(imgd);
holder.addChild(cropClip); // this is the final bitmap
var bitmapByteSize:int = cropClip.bitmapData.getPixels(cropClip.bitmapData.rect).length;
trace(bitmapByteSize); // this is always 10000
var testSo:SharedObject;
testSo = SharedObject.getLocal(“sharedobjecttest”);
testSo.data.testA = “thaddeus”;
testSo.data.testB = 14;
// make a copy of the bitmap
testSo.data.testC = cropClip;
testSo.flush();
}