BitmapData and Transformation Matrices?

I’ve started getting to grips with using the BitmapData class and a Transformation Matrix in the hope that I can start making some interesting image effects. However, at the moment Im having trouble figuring out how to shift the newly created bitmap so that any scale transformations are applied from the center rather than the top left corner.

See here for example: http://www.duncanhall.net/tmatrix.html

The flower on the left is the original, the flower on the right is the new image created using “bitmapData.draw()”. It has been scaled up to twice the size, but I want this to happen from the center of the image.

[AS]
import flash.display.BitmapData;
import flash.geom.Matrix;
/*******************************
VARS
/
var the_bmp:BitmapData = new BitmapData(flower_mc._width, flower_mc._height, false, 0x00FFFFFF);
var m:Matrix = new Matrix(1, 0, 0, 1, 0, 0);
m.scale(2,2);
/

RUN
*******************************/
the_bmp.draw(flower_mc, m);
this.createEmptyMovieClip(“holder_mc”, 10);
holder_mc.attachBitmap(the_bmp, 10);
holder_mc._x = 300;
holder_mc._y = 75;
[/AS]

If anyone can help me on this I’d most appreciate it.