人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascript に関する質問です。

以前Adobe photoshop に関するJavascriptを作成していただいたのですが、

今回そちらを少し変えていただいたScriptを書いていただきたく質問させていただきました。

以下が前回の質問文章です。

http://q.hatena.ne.jp/1231138162

今回は前回のをちょっとだけ変えて、更に3パターンの形式を作成したいと考えています。

http://oskuni7.sakura.ne.jp/hatena/question19/question19.htm

今回作成する上でですが

●自動シャープ機能を省きます。
●プログラムに対する要望ですが、1枚目の加工、2枚目の加工、3枚目(4枚を1枚に加工するか?1枚を1枚に加工するか?)の加工と順番に行われていき、写真ごとにサイズの変更とフォルダの場所指定変更ができる型を作成していただければ自分で調整できそうな気がするので型を望んでおります。

お手数をおかけしますがお時間があるかたおりましたらよろしくお願いいたします。







●質問者: aiomock
●カテゴリ:コンピュータ インターネット
✍キーワード:Adobe Photoshop JavaScript SCRIPT サイズ シャープ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Mook
●100ポイント ベストアンサー

>写真ごとにサイズの変更とフォルダの場所指定変更ができる型を作成していただければ

>自分で調整できそうな気がするので型を望んでおります。

前回のはそのように作ったつもりだったのですが、もう少しわかりやすくサイズも引数にしてみました。


下記をベースとして、

// Global define

// ★★★実際のパスに変更してください。
var rootFolder = "C:/Users/yoshi/Desktop/adobe script/";

var startRulerUnits = preferences.rulerUnits;
var startTypeUnits = preferences.typeUnits;
var startDisplayDialogs = displayDialogs;

// Set
preferences.rulerUnits = Units.PIXELS;
preferences.typeUnits = TypeUnits.PIXELS;
displayDialogs = DialogModes.NO;

// Jpeg Option
var jpegOpt = new JPEGSaveOptions();
jpegOpt.embedColorProfile = true;
jpegOpt.quality = 2;
jpegOpt.formatOptions = FormatOptions.PROGRESSIVE;
jpegOpt.scans = 3;
jpegOpt.matte = MatteType.NONE;

// 画像サイズ変換関数
function SizeConvert( srcFolder, dstFolder, xsize, ysize ) {
 var folderObj = Folder(rootFolder + srcFolder );
 var fileList = folderObj.getFiles();
 for( var i=0 ; i< fileList.length ; i++ ) {
 srcFileObj = new File( fileList[i].fsName );
 var dFilePath = fileList[i].fsName.replace( srcFolder, dstFolder );
 var dstFileObj = new File( dFilePath );
 srcFileObj.copy( dstFileObj );
 var cPic = open(dstFileObj);
 cPic.activeLayer.applySharpen();
 cPic.resizeImage(xsize, ysize);
 cPic.saveAs(dstFileObj, jpegOpt, true, Extension.LOWERCASE);
 cPic.close(SaveOptions.DONOTSAVECHANGES);
 }
}

// 画像結合関数
function MergeImage( srcFolderArray, dstFolder, xsize, ysize ) {
 var folderObj = Folder(rootFolder + srcFolderArray[0] );
 var selRegion = Array( Array(0, 0), Array(1, 0), Array(1, 1), Array(0, 1), Array(0, 0));
 var fileList = folderObj.getFiles();

 for ( var n=0 ; n< fileList.length ; n++ ) {
 var dstPath = fileList[n].fsName.replace( srcFolderArray[0], dstFolder );
 var dstFile = new File( dstPath );
 var cPic = documents.add( xsize, ysize, 72, dstFile.name );
 for( var p=0 ; p<4 ; p++ ) {
 var srcFileObj = new File( fileList[n].fsName.replace( srcFolderArray[0], srcFolderArray[p] ));
 var addPic = open( srcFileObj );
 addPic.activeLayer.applySharpen();
 addPic.resizeImage( xsize / 2, ysize / 2 );
 addPic.activeLayer.copy();
 addPic.close(SaveOptions.DONOTSAVECHANGES );
 activeDocument = cPic;
 cPic.selection.select( selRegion );
 cPic.paste();
 cPic.activeLayer.translate( ( p % 2 ) * xsize / 2, Math.floor( p / 2 ) * ysize / 2 );
 }
 cPic.saveAs( dstFile, jpegOpt, true, Extension.LOWERCASE);
 cPic.close( SaveOptions.DONOTSAVECHANGES );
 }
}

//★前回:以下を差し替え
SizeConvert( "kakou_picture1", "kakougo_picture1", 450, 600 );
SizeConvert( "kakou_picture2", "kakougo_picture2", 450, 600 );
MergeImage( Array( "kakou_picture3", "kakou_picture4", "kakou_picture5", "kakou_picture6" ), "kakougo_picture3", 450, 600 );

最後の3行を下記に書き換えたものをそれぞれ別のファイルとしておけば、

それぞれのパターンの処理ができるかと思います。


//★1パターン
SizeConvert( "kakou_picture1", "kakougo_picture1", 450, 600 );
SizeConvert( "kakou_picture2", "kakougo_picture2", 450, 600 );
SizeConvert( "kakou_picture3", "kakougo_picture3", 450, 600 );

//★2パターン
SizeConvert( "kakou_picture1", "kakougo_picture1", 600, 450 );
SizeConvert( "kakou_picture2", "kakougo_picture2", 450, 600 );
SizeConvert( "kakou_picture3", "kakougo_picture3", 450, 600 );

//★3パターン
SizeConvert( "kakou_picture1", "kakougo_picture1", 600, 450 );
SizeConvert( "kakou_picture2", "kakougo_picture2", 450, 600 );
MergeImage( Array( "kakou_picture3", "kakou_picture4", "kakou_picture5", "kakou_picture6" ), "kakougo_picture3", 450, 600 );
◎質問者からの返答

ご回答ありがとうございます。

試してみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ