forked from: pixelizer
forked from pixelizer (diff: 2)
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>