我需要将两个系列的图像(两个相同的分辨率,保存为JPG文件)组合成一个JPG文件,并将图像并排放置。我尝试过使用Photoshop CS6操作,但无济于事......我已经在互联网上搜索了可能的解决方案,但事实证明编写一个脚本来执行这样的功能需要编程知识。我想通过以下方式获得任何帮助:
我的文件名是这样的:
系列一:bone00001.jpg,bone00002.jpg ... bone00060.jpg 系列二:st00001.jpg,st00002.jpg ... st00060.jpg
我希望它们并排组合,以便“骨骼”系列位于左侧,“st”系列位于右侧,最终系列导出为done00001.jpg ... done00060.jpg
有人能用这个Photoshop脚本帮我吗?
答案 0 :(得分:1)
Adam D是对的 - 你最好在Adobe forums询问。但幸运的是,你的请求与a question asked a while back非常相似。 剧本很粗俗;但它会做你想要的: 图像需要大小相同。如果骨骼图像小于扫描图像,它将看起来一团糟,不会起作用。
将其另存为.jsx文件。它可以在PS中从文件>访问。脚本菜单。
加载其中一个骨骼图像,运行脚本 - 然后找到匹配的扫描图像并将它们并排放置并保存为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);
}