Photoshop:添加当前图片名称

| No Comments

今天鬼火说要做个批量在图片中添加当前文件名称的水印,在群里面发问.俺记得PS的批量做的应该是很不错的.所以爽口说了PS完全胜任,结果打开PS发现其本身根本没有这个功能....遂爬文,得到了下面的代码.放到PS的安装目录下面的Presets目录下面的Scripts目录重启PS即可.在PS的菜单->文件->脚本里面可以找到.
这里附源码,可以修改里面的水印位置还有字体样式.

addFileName.jsx


// this script is a variation of the script addTimeStamp.js that is installed with PS7
//Copyright 2002-2003. Adobe Systems, Incorporated. All rights reserved.
//All amendments Copyright Brian Price 2004 (brian@secalis.com)

//Check if a document is open
if ( documents.length > 0 )
{
var originalRulerUnits = preferences.rulerUnits;
preferences.rulerUnits = Units.PERCENT;

try
{
var docRef = activeDocument;

// Create a text layer at the front

var myLayerRef = docRef.artLayers.add();
myLayerRef.kind = LayerKind.TEXT;
myLayerRef.name = "Filename";
var myTextRef = myLayerRef.textItem;

//Set your parameters below this line

//If you wish to show the file extension, change the n to y in the line below, if not use n.
var ShowExtension = "n";
// Insert any text to appear before the filename, such as your name and copyright info between the quotes.
//If you do not want extra text, delete between the quotes (but leave the quotes in).
var TextBefore = "";

// Insert any text to appear after the filename between the quotes.
//If you do not want extra text, delete between the quotes (but leave the quotes in).
var TextAfter = "";

// Set font size in Points
myTextRef.size = 10;

//Set font - use GetFontName.js to get exact name
myTextRef.font = "Verdana";

//Set text colour in RGB values
var newColor = new SolidColor();
newColor.rgb.red = 255;
newColor.rgb.green = 255;
newColor.rgb.blue = 0;
myTextRef.color = newColor;

// Set the position of the text - percentages from left first, then from top.
myTextRef.position = new Array( 5, 94);

// Set the Blend Mode of the Text Layer. The name must be in CAPITALS - ie change NORMAL to DIFFERENCE.
myLayerRef.blendMode = BlendMode.NORMAL;

// select opacity in percentage
myLayerRef.opacity = 100;

// The following code strips the extension and writes tha text layer. fname = file name only

di=(docRef.name).indexOf(".");
fname = (docRef.name).substr(0, di);
//use extension if set
if ( ShowExtension == "y" )
{
fname = docRef.name
}

myTextRef.contents = TextBefore + " " + fname + " " + TextAfter;


}
catch( e )
{
// An error occurred. Restore ruler units, then propagate the error back
// to the user
preferences.rulerUnits = originalRulerUnits;
throw e;
}

// Everything went Ok. Restore ruler units
preferences.rulerUnits = originalRulerUnits;
}
else
{
alert( "You must have a document open to add the filename!" );
}

发表评论

关于本文

本文 CcChen 发表于 September 1, 2009 10:57 PM.

上一篇:下世纪再嬉戏

下一篇:刘爽:business sense的先天缺失

检索归档于站点首页归档首页