# CopyPixels of User Scaled Bitmap

**URL:** <https://forum.kirupa.com/t/copypixels-of-user-scaled-bitmap/309607>\
**Category:** flash\
**Created:** [May 19, 2010, 4:42pm UTC](https://forum.kirupa.com/t/copypixels-of-user-scaled-bitmap/309607 "2010-05-19T16:42:59Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![tcambron](https://avatars.discourse-cdn.com/v4/letter/t/67e7ee/32.png) [@tcambron](https://forum.kirupa.com/u/tcambron)\
**Post date:** [May 19, 2010, 4:42pm UTC](https://forum.kirupa.com/t/copypixels-of-user-scaled-bitmap/309607/1 "2010-05-19T16:42:59Z")

</div>

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();  
}
