読者です 読者をやめる 読者になる 読者になる

記念撮影アプリ

AIR Android

簡単にカメラを使った記念撮影アプリを作ってみました。
こんな感じ。

ソースはこちら

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark" title="Home" creationComplete="init(event)" xmlns:local="*" xmlns:mx="library://ns.adobe.com/flex/mx">
    <fx:Script>
        <![CDATA[
            import com.adobe.images.JPGEncoder;
            import mx.events.FlexEvent;
            import mx.graphics.codec.JPEGEncoder;
            protected function init(event:FlexEvent):void
            {
                var cam:Camera = Camera.getCamera();
                cam.setMode(640,480,10);
                var vd:Video =  new Video(cam.width,cam.height);
                vd.rotation = 90;
                vd.x = 480;
                vd.attachCamera(cam);
                myUI.addChild(vd);
            }
            protected function onClick(e:Event):void{
                var bmd:BitmapData = new BitmapData(480,640);
                bmd.draw(myGroup);
                var jpge:JPGEncoder = new JPGEncoder(80);
                var img:ByteArray = jpge.encode(bmd);
                //var file:File = File.desktopDirectory.resolvePath("webcam.jpg");
                var file:File = File.documentsDirectory.resolvePath("webcam.jpg");
                var stream:FileStream = new FileStream();
                stream.open(file, FileMode.WRITE);
                stream.writeBytes(img);
                stream.close();
            }
        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <s:Group id="myGroup" width="480" height="640">
        <mx:UIComponent id="myUI"/>
        <s:Image x="174" y="107" source="@Embed('../assets/image.png')"/>
    </s:Group>
    <s:Button label="ハイチーズ!" click="onClick(event)" bottom="20" horizontalCenter="0"/>
</s:View>