0
我不知道這是否是一個AppleScript的事情,或者這將是在實際的語言更好(Photoshop中記錄的行爲是可怕的),但我想知道是否有在Photoshop中的方式:水印的Photoshop腳本?
- 拍攝圖像
- 另一個圖像粘貼到它
- 在右下角啓動該圖像並移動圖像X的像素向左和Y像素高達
- 更改不透明度爲40%
- 保存圖像在舊的 0123之上
我不知道這是否是一個AppleScript的事情,或者這將是在實際的語言更好(Photoshop中記錄的行爲是可怕的),但我想知道是否有在Photoshop中的方式:水印的Photoshop腳本?
通常堆棧溢出是關於提問和獲取答案。另外,如果你已經努力嘗試自己嘗試這個問題,而不是履行要求。但是既然你指出,編寫你的想法是有益的,而不是運行我爲你寫的基礎知識。也許你可以挑選它並與之一起運行。
首先有三種語言可以編寫Photoshop。它們是Apple-script,JavaScript和Visual Basic。雖然VB是一小部分。 JavaScript是選擇的武器。
這是一個將移動水印並保存在現有文件上的JavaScript。 沒有通過腳本粘貼可能有點棘手;因爲它可能無法正常工作,除非您事先已經剪切或複製了一張圖像。粘貼兩次似乎不起作用,因此您必須在之前複製圖像以運行該腳本。您可能會更改腳本以加載所需的文件並將其放入其他文檔中:
// 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);
}