Image 用于水印的Photoshop脚本?
我不确定这是否是一个AppleScript的东西,或者它在实际语言中是否会更好(Photoshop录制动作很糟糕),但我想知道Photoshop中是否有一种方法可以:Image 用于水印的Photoshop脚本?,image,scripting,photoshop,Image,Scripting,Photoshop,我不确定这是否是一个AppleScript的东西,或者它在实际语言中是否会更好(Photoshop录制动作很糟糕),但我想知道Photoshop中是否有一种方法可以: 拍照 将另一个图像粘贴到它上 从右下角开始,将图像向左移动X像素,向上移动Y像素 将不透明度更改为40% 将图像保存在旧图像上 通常堆栈溢出是关于提问和获得答案。更重要的是,如果你自己努力尝试解决这个问题;不是关于满足要求。但既然你指出,写下你的想法,而不是执行我为你写的关于基础知识的行动,那将是有益的。也许你可以把它捡起来,带
- 拍照
- 将另一个图像粘贴到它上
- 从右下角开始,将图像向左移动X像素,向上移动Y像素
- 将不透明度更改为40%
- 将图像保存在旧图像上
// call the source document
var srcDoc = app.activeDocument;
//get the image with and height
var w = srcDoc.width.value;
var h = srcDoc.height.value;
// paste into current document
app.activeDocument.paste();
// set the name
srcDoc.activeLayer.name = "watermark"
// set the distance the watermark needs to move
var offsetX = 40;
var offsetY = 20;
//call the function to offset the image
moveActiveLayer(w, h, offsetX, offsetY)
//set opacity
srcDoc.activeLayer.opacity = 40
//flatten the image
srcDoc.flatten();
//save the image
app.activeDocument.close(SaveOptions.SAVECHANGES)
// function MOVE ACTIVE LAYER (layer name, deltaX, deltaY)
// ----------------------------------------------------------------
function moveActiveLayer(imageWidth, imageHeight, dX, dY)
{
var x = parseFloat(srcDoc.activeLayer.bounds[0])
var y = parseFloat(srcDoc.activeLayer.bounds[1])
var x1 = parseFloat(srcDoc.activeLayer.bounds[2])
var y1 = parseFloat(srcDoc.activeLayer.bounds[3])
var moveX = (imageWidth - x1) - dX;
var moveY = (imageHeight- y1) - dY;
// coords from bottom right
// Transform layer
// =======================================================
var id442 = charIDToTypeID( "Trnf" );
var desc93 = new ActionDescriptor();
var id443 = charIDToTypeID( "null" );
var ref64 = new ActionReference();
var id444 = charIDToTypeID( "Lyr " );
var id445 = charIDToTypeID( "Ordn" );
var id446 = charIDToTypeID( "Trgt" );
ref64.putEnumerated( id444, id445, id446 );
desc93.putReference( id443, ref64 );
var id447 = charIDToTypeID( "FTcs" );
var id448 = charIDToTypeID( "QCSt" );
var id449 = charIDToTypeID( "Qcsa" );
desc93.putEnumerated( id447, id448, id449 );
var id450 = charIDToTypeID( "Ofst" );
var desc94 = new ActionDescriptor();
var id451 = charIDToTypeID( "Hrzn" );
var id452 = charIDToTypeID( "#Pxl" );
desc94.putUnitDouble( id451, id452, moveX );
var id453 = charIDToTypeID( "Vrtc" );
var id454 = charIDToTypeID( "#Pxl" );
desc94.putUnitDouble( id453, id454, moveY );
var id455 = charIDToTypeID( "Ofst" );
desc93.putObject( id450, id455, desc94 );
executeAction( id442, desc93, DialogModes.NO );
}