Search code examples
iphoneiosactionscript-3flash-builder

How to rotate image from cameraUI for iOS in actionscript 3.0


I'm building an App with actionscript 3.0 in my Flash builder. This is a followup question to this question, It works but when I take the picture, the image comes out rotated to the left. how can I check which way the user is holding the phone? and then what code do I use to rotate the image to it's corresponding place?

Thanks in advanced!

EDIT: I'm using this code to rotate the image, but it seems to only rotate the image being displayed not the image file, any ideas?

var mat:Matrix = new Matrix();
mat.translate(-W/2, -H/2);
mat.rotate(Math.PI/2);
mat.translate(+W/2, +H/2);
mat.concat(myObj.transform.matrix);
myObj.transform.matrix = mat;

~Myy


Solution

  • You can use Stage.deviceOrientation or Stage.orientation* to determine which way round the phone is.

    *not sure if this one works on iOS

    Is it the BitmapData result itself that you want to rotate (ie create a new BitmapData with rotated image) or just rotate a Bitmap on the display list?

    Edit:

    Ok, heres some code to rotate a BitmapData object:

    function rotateBitmapData(angle:int, source:BitmapData):BitmapData
    {
        var newWidth:int = source.rect.width;
        var newHeight:int = source.rect.height;
        if (angle==90 || angle==270)
        {
            newWidth = source.rect.height;
            newHeight = source.rect.width;
        }
        var newBmd:BitmapData = new BitmapData(newWidth, newHeight, source.transparent);
        var tx:Number = 0;
        var ty:Number = 0;
        if (angle==90 || angle==180)
        {
            tx = newWidth;
    }
        if (angle==180 || angle==270)
        {
            ty = newHeight;
        }
        var matrix:Matrix = new Matrix();
        matrix.createBox(1, 1, Math.PI*angle/180, tx, ty);
        newBmd.draw(source, matrix);
        return newBmd;
    }
    

    angle should be 0,90,180 or 270. It will return a new BitmapData object rotated by specified angle.