//すげー適当なスクリプト v 0.01a //まきのともやす 2006/07/17 //画像の長手方向を指定の解像度に変更しBMP/JPG/PNG形式でそれぞれ保存 //例外処理とか全くしてないのでどうなるか解らん代物 //ノークレームノーリターンでお願いいたします。 var loadfile=File.openDialog(); //「開く」のダイアログを呼び出す if (loadfile!=null) { var current_document=app.open(loadfile); //ダイアログで指定したファイルを開く var fpath = activeDocument.path; //開かれているファイルのパス取得 var docfilename = activeDocument.name; //アクティブのファイル名取得 var picsize; //縮小する大きさ入力 picsize = prompt("Redction picture size(px)","1024","縮小画像サイズ入力"); activeDocument.flatten(); //レイヤ結合 preferences.rulerUnits = Units.PIXELS; //単位をピクセルに変更 var x = activeDocument.width; //単位付きの大きさ取得(px) var y = activeDocument.height; x = activeDocument.width.value; //単位なしの画像の大きさ y = activeDocument.height.value; // alert(x+","+y); var resize_rate; //縮小率の計算(適当) //X・Y軸のどちらか大きい方を基準 if (x >y) { resize_rate=(picsize/x); //alert("resizerate(x axis)="+ resize_rate); }else{ resize_rate=(picsize/y); //alert("resizerate(y axis)="+ resize_rate); } //画像サイズの変更 activeDocument.resizeImage(x*resize_rate,y*resize_rate); //拡張子までの文字列(ファイル名のみ)を抽出 var basefilenum = docfilename.lastIndexOf("."); var basefilename = docfilename.slice(0,basefilenum); //ファイル名入力(変更する場合) basefilename = prompt("Save file name",basefilename,"保存ファイル名入力"); //BMPで保存(パラメータ設定) fileObj = new File(fpath + "/" + basefilename + ".bmp"); bmpOpt = new BMPSaveOptions(); bmpOpt.alphaChannels = true; bmpOpt.depth = BMPDepthType.THIRTYTWO; bmpOpt.flipRowOrder = false; bmpOpt.osType = OperatingSystem.WINDOWS; bmpOpt.rleCompression = false; activeDocument.saveAs(fileObj, bmpOpt, true, Extension.LOWERCASE) //PNGで保存 fileObj = new File(fpath + "/" + basefilename +".png"); pngOpt = new PNGSaveOptions(); pngOpt.interlaced = false; activeDocument.saveAs(fileObj, pngOpt, true, Extension.LOWERCASE); //JPGで保存 fileObj = new File(fpath + "/" + basefilename +".jpg"); jpegOpt = new JPEGSaveOptions(); jpegOpt.embedColorProfile = true; jpegOpt.quality = 12; jpegOpt.formatOptions = FormatOptions.PROGRESSIVE; jpegOpt.scans = 3; jpegOpt.matte = MatteType.NONE; activeDocument.saveAs(fileObj, jpegOpt, true, Extension.LOWERCASE); alert("process end"); } else { //ダイアログでファイルをしていなかった //または開けなかった場合は警告メッセージ表示で終了 alert("file not open!"); }