forked from: Green Icon Generator
Twitterで緑色アイコンがはやっていたので
画像を緑色にして保存するツールを作ってみました
@author Yasu
zahirです。
サイズが大きい画像だと全体が見えなくて残念だったのでリサイズするようにしてみました。
/**
* Copyright zahir ( http://wonderfl.net/user/zahir )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/4AM9
*/
// forked from clockmaker's Green Icon Generator
package {
import flash.display.*;
import flash.net.*;
import jp.progression.casts.*;
import mx.graphics.codec.*;
import caurina.transitions.Tweener;
import caurina.transitions.properties.ColorShortcuts;
ColorShortcuts.init();
/**
* Twitterで緑色アイコンがはやっていたので
* 画像を緑色にして保存するツールを作ってみました
* @author Yasu
*/
/*
*zahirです。
*サイズが大きい画像だと全体が見えなくて残念だったのでリサイズするようにしてみました。
*/
public class Main extends CastDocument {
public function Main():void {
var fr :FileReference = new FileReference();
var wrap :CastSprite = addChild(new CastSprite( { x:10, y:120 } )) as CastSprite;
var loader:CastLoader = wrap.addChild(new CastLoader()) as CastLoader;
// 1.ローカル画像の読み込み
var loadBtn :CastButton = addChild(new CastButton( { x:10, y:10 } )) as CastButton;
loadBtn.addChild(new CastTextField({text:"SELECT", opaqueBackground: 0xCCCCCC, selectable: false}));
loadBtn.addEventListener("click", function():void { fr.browse(); });
// 2.緑色にする
fr.addEventListener("select", function():void { fr.load(); });
fr.addEventListener("complete", function():void {
loader.contentLoaderInfo.addEventListener("init", function():void {
var side:int = 256;
if(loader.width > loader.height){
if(loader.width > side){
loader.width = side;
loader.scaleY = loader.scaleX;
}
}else{
if(loader.height > side){
loader.height = side;
loader.scaleX = loader.scaleY;
}
}
Tweener.addTween(loader, {_color_redOffset:-150, _color_blueOffset:-150, time:2 } );
});
loader.loadBytes(fr.data);
});
// 3.保存する
var saveBtn :CastButton = addChild(new CastButton( { x:130, y:10 } )) as CastButton;
saveBtn.addChild(new CastTextField({text:"SAVE", opaqueBackground: 0xCCCCCC, selectable: false})) ;
saveBtn.addEventListener("click", function():void {
if (!loader.content) return;
var capture :BitmapData = new BitmapData(loader.width, loader.height);
capture.draw(wrap);
fr.save((new PNGEncoder()).encode(capture), "geeen-icon.png");
});
}
}
}