forked from: pixelizer

by s8t1h12akj forked from pixelizer (diff: 2)
♥0 | Line 73 | Modified 2016-09-17 14:18:42 | MIT License
play

ActionScript3 source code

/**
 * Copyright s8t1h12akj ( http://wonderfl.net/user/s8t1h12akj )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/SEJI
 */

<?xml version="1.0" encoding="utf-8"?>
<!-- forked from alpar's pixelizer -->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx">
    <s:Button x="25"
              y="435"
              width="417"
              label="ここをクリックしてご自分のファイルから画像を選択します。 Image"
              click="loadFile(event)"
              cornerRadius="0"/>
    <s:Image x="25"
              y="10"
              width="400"
              height="400"
              id="image"/>
    <s:HSlider x="25"
               y="415"
               width="400"
               id="hSlider"
               minimum="2"
               maximum="20"
               stepSize="2"
               change="pixelize()"/>
    <s:VSlider x="430"
               y="10"
               height="400"
               id="vSlider"
               minimum="2"
               maximum="20"
               stepSize="2"
               change="pixelize()"/>
    <fx:Script>
        <![CDATA[
            import mx.controls.Alert;

            private var file:FileReference = new FileReference();
            private var fileFilter:FileFilter = new FileFilter("Images", "*.jpg; *.jpeg; *.gif; *.png");
            private var loader:Loader = new Loader();
            private var bitmap:Bitmap;

            private function loadFile(e:MouseEvent):void {
                file.addEventListener(Event.SELECT, fileSelected);
                file.browse([fileFilter]);
            }

            private function fileSelected(e:Event):void {
                file.removeEventListener(Event.SELECT, fileSelected);
                file.addEventListener(Event.COMPLETE, fileLoaded);
                file.load();
            }

            private function fileLoaded(e:Event):void {
                loader.contentLoaderInfo.addEventListener(Event.INIT, loaderInit);
                loader.loadBytes(e.target.data);
            }

            private function loaderInit(e:Event):void {
                loader.contentLoaderInfo.removeEventListener(Event.INIT, loaderInit);

                bitmap = Bitmap(loader.content);
                bitmap.smoothing = true;
                
                image.source = bitmap;
            }

            private function pixelize():void {
                image.graphics.clear();

                for (var i:uint = 0; i < 400 / hSlider.value; i++) {
                    for (var j:uint = 0; j < 400 / vSlider.value; j++) {
                        var color:uint = bitmap.bitmapData.getPixel(hSlider.value * i, vSlider.value * j);
                        image.graphics.beginFill(color);
                        image.graphics.drawRect(hSlider.value * i, vSlider.value * j, hSlider.value, vSlider.value);
                        image.graphics.endFill();
                    }
                }

                image.source = null;
            }
        ]]>
    </fx:Script>
</s:Application>