2013-10-10 86 views
0

我不知道這是否是一個AppleScript的事情,或者這將是在實際的語言更好(Photoshop中記錄的行爲是可怕的),但我想知道是否有在Photoshop中的方式:水印的Photoshop腳本?

  • 拍攝圖像
  • 另一個圖像粘貼到它
  • 在右下角啓動該圖像並移動圖像X的像素向左和Y像素高達
  • 更改不透明度爲40%
  • 保存圖像在舊的
  • 0123之上

回答

0

通常堆棧溢出是關於提問和獲取答案。另外,如果你已經努力嘗試自己嘗試這個問題,而不是履行要求。但是既然你指出,編寫你的想法是有益的,而不是運行我爲你寫的基礎知識。也許你可以挑選它並與之一起運行。

首先有三種語言可以編寫Photoshop。它們是Apple-script,JavaScriptVisual 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); 
}