<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init()" viewSourceURL="srcview/index.html">
    
    <mx:Script>
        <![CDATA[
            import mx.graphics.codec.JPEGEncoder;
            import mx.events.SliderEvent;
            import mx.messaging.events.ChannelEvent;
            [Embed("frame_tube_val_small.png")]
            private var myImg:Class;
            private var myBmp:Bitmap;

            [Embed("FrameFilter.pbj", mimeType="application/octet-stream")]
            private var TestFilter:Class;
            
            private var shader:Shader;
            private var filter:ShaderFilter;
            import flash.display.*;
            
            private function init():void {
                
                shader = new Shader(new TestFilter() as ByteArray);

                  myBmp = Bitmap(new myImg()); 
                shader.data.img2.input = myBmp.bitmapData;
                video.width = myBmp.width;
                video.height = myBmp.height;
                shader.data.filterColor.value = [0,1,0,0];
                shader.data.error.value = [1.2];
                filter = new ShaderFilter(shader);
                video.filters = [filter];
            }
            
            private function changeError(event:SliderEvent):void {
                trace(event.value);
                shader.data.error.value = [event.value];
                video.filters = [filter];
            }
            
            
            private var fr:FileReference;
            
            private function savePicture():void {
                fr = new FileReference();
                var bmpData:BitmapData = new BitmapData(video.width,video.height);
                bmpData.draw(video);
                var encoder:JPEGEncoder = new JPEGEncoder();
                var ba:ByteArray = encoder.encode(bmpData);
                fr.save(ba,"myImg.jpg");
//                var newImage:File = File.desktopDirectory.resolvePath("myPict.jpg");
//                var fileStream:FileStream = new FileStream();
//                fileStream.open(newImage,FileMode.UPDATE);
//                fileStream.writeBytes(ba);
//                fileStream.close();
                
            }
            
            
            private function attachCamera():void {
                var camera:Camera = Camera.getCamera();
                camera.setMode(160*3,120*3,30);
                video.attachCamera(camera);
                
            }
        ]]>
    </mx:Script>
    <mx:VideoDisplay x="34" y="41" autoPlay="true" 
        id="video" />
    <mx:Button x="242" y="10" label="Save" id="save" click="savePicture()"/>
    <mx:Button x="34" y="10" label="Attach Camera" click="attachCamera()"/>
    
</mx:Application>