PhotoShopで自動でアプリの全アイコン&申請時に必要そうな画像を生成するバッチスクリプト
iPhoneとAndroid全部生成します。うかつにscript書いたらpngが圧縮されてなかったので、圧縮もするようになってます。
PhotoShopがインストールされてる環境で、hoge.jsxみたいに好きなファイル名つけてダブルクリックしてください。
//1024.pngというファイル名のアイコン画像をこのスクリプトファイルのディレクトリにおいて実行する //設置ディレクトリパス var dirName = "/Users/hoge/Desktop/flash/hogehoge_app/icon/"; var time=new Date().getTime(); var size; new Folder(dirName+"android").create(); var iosPixcels = [29,57,114,512,48,72,50,58,100,144,1024]; var androidPixcels = [192,144,96,72,48,36]; for(var i=0; i<iosPixcels.length; i++){ saveImg(iosPixcels[i], ""); } for(var i=0; i<androidPixcels.length; i++){ saveImg(androidPixcels[i], "android/"); } function saveImg(px, parentName){ fileObj0 = new File(dirName+"1024.png"); open(fileObj0); tougouAll(); preferences.rulerUnits = Units.PIXELS; activeDocument.resizeImage(px,px); fileObj = new File(dirName+parentName+px+".png"); pngOpt = new PNGSaveOptions(); pngOpt.compression=9 // (level of compression 0 .. 9 0 - without compression pngOpt.interlaced = false; activeDocument.saveAs(fileObj, pngOpt, true, Extension.LOWERCASE); activeDocument.close(SaveOptions.DONOTSAVECHANGES); } function tougouAll(){ var docObj = documents; for (var i=0; i<docObj.length; i++){ activeDocument = docObj[i]; if (docObj[i].artLayers.length > 1){ docObj[i].mergeVisibleLayers(); } } } function saveAndroid1024x500Img(){ fileObj0 = new File(dirName+"1024.png"); open(fileObj0); tougouAll(); preferences.rulerUnits = Units.PIXELS; //画像解像度 activeDocument.resizeImage(500,500); //カンバスサイズ activeDocument.resizeCanvas(1024,500); //新規レイヤー&一番下に&黒か白で塗りつぶし layObj = activeDocument.artLayers.add(); layObj.move(activeDocument.layers[1],ElementPlacement.PLACEAFTER);// ElementPlacement.PLACEATEND); //移動基点,位置指定オブジェクト) activeDocument.selection.selectAll(); RGBColor = new SolidColor(); RGBColor.red = //255; RGBColor.green = //255; RGBColor.blue = 255;//●ここで背景の色指定可能 //selReg = [[0,0],[200,0],[200,100],[0,100]]; //activeDocument.selection.select(selReg); activeDocument.selection.fill(RGBColor,ColorBlendMode.NORMAL, 100, false); fileObj = new File(dirName+"android/1024_500.png"); pngOpt = new PNGSaveOptions(); pngOpt.compression=9 // (level of compression 0 .. 9 0 - without compression pngOpt.interlaced = false; activeDocument.saveAs(fileObj, pngOpt, true, Extension.LOWERCASE); activeDocument.close(SaveOptions.DONOTSAVECHANGES); } saveAndroid1024x500Img();//Android用の申請画像も生成 alert("Finish! "+((new Date().getTime()) - time)/1000+"秒");