今天鬼火说要做个批量在图片中添加当前文件名称的水印,在群里面发问.俺记得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!" ); }