Table of Contents

概要

  • 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