// 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"); }); } } } forked from: Green Icon Generator