PNG形式で保存

PNG形式で保存を実行するスクリプトです。

/*
http://www.openspc2.org/book/PhotoshopCS/normal/GUI/001/index.html
(ダイアログを作成する)
https://community.adobe.com/t5/photoshop/adobe-javascriptについてご教授ください/td-p/9233102
(Adobe JavaScriptについてご教授ください)
https://stackoverflow.com/questions/4537506/photoshop-jsx-set-activedocument-to-currently-open-document
(Set activeDocument to currently open document)
http://www.openspc2.org/book/PhotoshopCC2014/
(Adobe Photoshop CC 2014自動化作戦)
https://qiita.com/r-ngtm/items/65f26b1f782f72b18d2a
(初心者がPhotoshopスクリプト(.jsx)を作ってみて得られた知識・ノウハウまとめ)
https://code.i-harness.com/ja/q/2e984
(getfileextension - javascript pop ☆JavaScriptでファイル拡張子を取得するにはどうすればよいですか?)
https://qiita.com/kyoshiro-obj/items/3c59f14b37a0d7b7d59f
(【JavaScript】ファイル名(拡張子あり)からファイル名(拡張子なし)と拡張子に分割する(正規表現))
*/

var aSwitch = false; //true でpromptを表示
var dName = activeDocument.name; //アクティブなドキュメントの名前を取得

var a = dName.split('.');
if (a.length != 1){
var reg=/(.*)(?:\.([^.]+$))/;
var dName = dName.match(reg)[1];
}

if (aSwitch) {
var savename = prompt('PNG形式で保存\n保存するファイル名を入れてください', dName); //promptを表示
} else {
var savename = dName;
}

if (savename === ''){
app.beep();
alert('文字が入力されていません');
}else if (savename != null) {
fileObj = new File('~/Desktop/' + savename + '.png');
if (fileObj.exists) {
app.beep();
dialog(fileObj,savename);
} else {
imageWriting(fileObj);
}
}

function imageWriting(fileObj) {
pngOpt = new PNGSaveOptions();
pngOpt.interlaced = false;
activeDocument.saveAs(fileObj, pngOpt, true, Extension.LOWERCASE);
}

function dialog(fileObj,savename) {
win = new Window('dialog', savename + '.png');
win.title = win.add('statictext',{ width: 200, height: 30, x: 25, y: 25 },'同名のファイルが存在します\n上書きしますか?');
win.okBtn = win.add('button', { width: 80, height: 25, x: 45, y: 80 }, '上書き');
win.renameBtn = win.add('button', { width: 80, height: 25, x: 45, y: 120 }, 'リネーム');
win.cnBtn = win.add('button', { width: 80, height: 25, x: 45, y: 160 }, 'Cancel');
win.center();
// win.bounds = {left:200+500, top:200, right:410+500, bottom:410} // [200,100,580,245];

win.okBtn.active = false;
win.renameBtn.active = true;
win.cnBtn.active = false;

win.okBtn.onClick = function () {
//alert('上書きボタンが押されました');
win.close();
imageWriting(fileObj);
}

win.renameBtn.onClick = function () {
//alert('リネームボタンが押されました');
win.close();
var b;
for (b = 2; b < 100; b++) {
// 指定回数ループ処理
fileObj = new File('~/Desktop/' + savename + '_' + b + '.png');
if (fileObj.exists == false) {
break;
}
}
imageWriting(fileObj);
}

win.show();
}

更新履歴

inserted by FC2 system