概要
- Photoshop でフォルダ内の画像を解像度を変えて書き出し。
- 変換元フォルダの画像(.eps)を解像度を下げて変換先フォルダに保存します。
- 変換後はファイル名の末尾に「追加文字」が付きます。
- 「アクション」と「バッチ処理」で同様なことができるみたい。
ソース
-
downSample.zip
// 解像度変換 // by TakeAsh // 2010/03/18 #target 'Photoshop' #includepath "~/Local Settings/Application Data/Adobe/JavaScript/" #include "ominoDialogMaker.jsx" // http://omino.com/sw/ominoAdobeScriptsSuite/shared/ominoDialogMaker.jsx #include "getTargetFile.jsx" #include "getEpsOptions.jsx" var srcFolder = '~'; var dstFolder = '~'; var destResolution = 72; var ext = '.eps'; var modName = 's'; app.displayDialog = DialogModes.ERROR; var omd = newOminoDialog( '解像度変換' ); omd.boxedText( 2, "変換元フォルダの画像("+ext+")を解像度を下げて変換先フォルダに保存します。\n" + "変換後はファイル名の末尾に「追加文字」が付きます。" ); omd.selectFolder( '変換元フォルダ', 'srcFolder', srcFolder, '変換元フォルダを選択してください。' ); omd.selectFolder( '変換先フォルダ', 'dstFolder', dstFolder, '変換先フォルダを選択してください。' ); omd.number( '解像度', 'destResolution', destResolution ); omd.string( '追加文字', 'modName', modName ); var result = omd.run(); if ( result != null ){ srcFolder = result[ 'srcFolder' ]; dstFolder = result[ 'dstFolder' ]; destResolution = result[ 'destResolution' ]; modName = result[ 'modName' ]; var originalUnit = preferences.rulerUnits; preferences.rulerUnits = Units.MM; var win = new Window( 'palette', '解像度変換', [100, 100, 210, 170] ); win.msg = win.add( 'statictext', [8, 8, 100, 30], '0/0' ); win.abort = win.add( 'button', [8,30, 100, 56], '中断' ); win.abort.onClick = function(){ this.parent.aborted = true; }; win.aborted = false; win.show(); try { srcFolder = new Folder( srcFolder ); var fileList = srcFolder.getFiles( '*' + ext ); var goal = fileList.length; var options = getEpsOptions(); var postfix = '/' + goal; for( var i=0; i<goal; ++i ){ if ( win.aborted ){ break; } win.msg.text = i + postfix; open( fileList[i] ); if ( activeDocument.resolution > destResolution ){ activeDocument.resizeImage( null, null, destResolution, ResampleMethod.BICUBIC ); } var fName = fileList[i].name; var dot = -1; if ( (dot = fName.lastIndexOf('.')) >= 0 ){ fName = fName.substring(0, dot); } fName += modName; var targetFile = getTargetFile( fName, ext, dstFolder); activeDocument.saveAs( targetFile, options, true, Extension.LOWERCASE ); app.activeDocument.close( SaveOptions.DONOTSAVECHANGES ); } } catch(e) { alert( e.message, 'スクリプト警告', true); } preferences.rulerUnits = originalUnit; if ( win.aborted ){ alert( '中断されました。' ); } else { app.beep(); } } app.displayDialog = DialogModes.ALL; // EOF