0

2 つの一連の画像 (どちらも同じ解像度で、JPG ファイルとして保存) を 1 つの JPG ファイルに結合し、画像を並べて並べる必要があります。Photoshop CS6 アクションでこれを実行しようとしましたが、役に立ちませんでした...インターネットで可能な解決策を検索しましたが、そのような機能を実行するスクリプトを作成するにはプログラミングの知識が必要であることが判明しました。以下の点について、可能な限りお役に立てれば幸いです。

私のファイル名は次のとおりです。

シリーズ 1: bone00001.jpg、bone00002.jpg ... bone00060.jpg シリーズ 2: st00001.jpg、st00002.jpg ... st00060.jpg

「bone」シリーズが左側、「st」シリーズが右側になるように並べて結合し、最終的なシリーズを done00001.jpg ... done00060.jpg としてエクスポートします。

この Photoshop スクリプトを手伝ってくれる人はいますか?

4

1 に答える 1

1

Adam D の言うとおりです。Adobe フォーラムで質問したほうがよいでしょう。しかし、運が良ければ、あなたの要求は、しばらく前に尋ねられた質問と非常によく似ています。スクリプトは粗雑です。しかし、それはあなたが望むことをします: 画像は同じサイズである必要があります. 骨の画像がスキャン画像よりも小さい場合、見栄えが悪くなり、機能しません。

これを .jsx ファイルとして保存します。ファイル > スクリプト メニューから PS 内でアクセスできます。

骨の画像の 1 つをロードし、スクリプトを実行します。これにより、一致するスキャン画像が検出され、それらが並べて配置され、bone_XXXX_done.jpg (XXXX は数字) として保存されます。

    var srcDoc = app.activeDocument;

// call the current document
var srcDoc = app.activeDocument;

// set original width and height
var imageW = srcDoc.width.value;
var imageH = srcDoc.height.value;

// get the info out of the source doc
var fileName = srcDoc.name;
var docName = fileName.substring(0,fileName.length -4);
var filePath = srcDoc.path.toString();
var fileExt = fileName.substring(fileName.length -4, fileName.length);

var nameCheck = fileName.substring(0,fileName.indexOf("bone"));

if (nameCheck <1)
{
   var fileNum = fileName.substring(4,fileName.length -4);
   // no underscore so we need to open it's namesake
   // alert(nameCheck)
   var filePair = filePath + "/" + "st" + fileNum + fileExt;
   openThisFile(filePair)
   activeDocument.selection.selectAll()
   activeDocument.selection.copy();
   app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
   app.activeDocument = srcDoc;
   activeDocument.resizeCanvas(imageW *2, imageH, AnchorPosition.MIDDLELEFT);
   selectRect(0, imageW, imageW*2, imageH)
   activeDocument.paste()
   activeDocument.flatten();
   var newName = filePath + "/" + docName + "_done" + fileExt
   saveMe(newName)
}
    else
    {
      app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
    }


function openThisFile(masterFileNameAndPath)
{
 var fileRef = new File(masterFileNameAndPath)
 if (fileRef.exists)
 //open that doc
 {
    app.open(fileRef);
 }
 else
 {
    alert("error opening " + masterFileNameAndPath)
 }
}


function selectRect(top, left, right, bottom)
{
    srcDoc.selection.deselect()
    // =======================================================
    var id1 = charIDToTypeID( "setd" );
    var desc1 = new ActionDescriptor();
    var id2 = charIDToTypeID( "null" );
    var ref1 = new ActionReference();
    var id3 = charIDToTypeID( "Chnl" );
    var id4 = charIDToTypeID( "fsel" );
    ref1.putProperty( id3, id4 );
    desc1.putReference( id2, ref1 );
    var id5 = charIDToTypeID( "T   " );
    var desc2 = new ActionDescriptor();
    var id6 = charIDToTypeID( "Top " );
    var id7 = charIDToTypeID( "#Pxl" );
    desc2.putUnitDouble( id6, id7, top );
    var id8 = charIDToTypeID( "Left" );
    var id9 = charIDToTypeID( "#Pxl" );
    desc2.putUnitDouble( id8, id9, left );
    var id10 = charIDToTypeID( "Btom" );
    var id11 = charIDToTypeID( "#Pxl" );
    desc2.putUnitDouble( id10, id11, bottom );
    var id12 = charIDToTypeID( "Rght" );
    var id13 = charIDToTypeID( "#Pxl" );
    desc2.putUnitDouble( id12, id13, right );
    var id16 = charIDToTypeID( "Rctn" );
    desc1.putObject( id5, id16, desc2 );
    executeAction( id1, desc1, DialogModes.NO );
}

function saveMe(fPath)
{

// save out the image as jpeg
var jpgFile = new File(fPath);
jpgSaveOptions = new JPEGSaveOptions();
jpgSaveOptions.formatOptions = FormatOptions.OPTIMIZEDBASELINE;
jpgSaveOptions.embedColorProfile = true;
jpgSaveOptions.matte = MatteType.NONE;
jpgSaveOptions.quality = 12;

activeDocument.saveAs(jpgFile, jpgSaveOptions, true, Extension.LOWERCASE);

// close that saved jpg
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
于 2013-01-17T11:27:33.893 に答える