Priyank Patel
Priyank Patel

Reputation: 6996

Resizing BitmapData in ActionScript 3

I am using ActionScript 3.0 to capture image from users webcam ,It is working fine , however the problem is that the size of image is too big for my liking . Can I make it small , I tried changing coordinates of Bitmap Data. Can anybody suggest me the solution. Thanks

Upvotes: 0

Views: 4162

Answers (1)

Kodiak
Kodiak

Reputation: 5978

When you capture the webcam you have to provide a matrix. This matrix can handle a rescaling.

var output:BitmapData = new BitmapData(camera.width * scaleFactor, camera.height * scaleFactor, false);
var matrix:Matrix = new Matrix();
matrix.scale(scaleFactor, scaleFactor);
output.draw(camera, matrix, null, null, null, true);

Sometimes the smoothing of this method is not really satisfying. A solution would be to use an intermediate:

var capture:BitmapData = new BitmapData(camera.width, camera.height, false);
capture.draw(camera);
//or with a newer compiler
//camera.drawToBitmapData(capture);
var intermediate:Bitmap = new Bitmap(capture);
intermediate.scaleX = intermediate.scaleY = scaleFactor;
output.draw(intermediate);
capture.dispose();

Prefer the first method if you are okay with the smoothing.

Upvotes: 3

Related Questions