上一期介绍用photoshop添加简单边框的方法,而photoshop还有专门制作边框的插件和滤镜,你也可以下载一个试试,具体自己到网上搜索一下。另外很多朋友也喜欢把EXIF参数也写在边框上,以方便别的朋友欣赏照片时了解其拍摄参数。
photoshop功能强大, 但这一样东西却很不方便。下面将介绍通过脚本实现类似功能的方法。
这个脚本出处已不可考,因为原来的脚本是直接加上边框和签名还有EXIF,而且对于添加的文字位置以及大小等控制不大方便,本人做了一此修改,成为只具体添加EXIF参数的脚本。
使用的时候,应该先加好边框和签名,然后再调用脚本。照片大小不同和边框类型不同,对EXIF参数字型字号和位置要求也不同,所以使用的时候可根据需要自己对参数进行修改。当然对比较常用的也可以多保存成不同名字的脚本直接调用,而不用每次都修改。
脚本适用CS2中英文版,本人在9.0 CS2试用正常。
将后面的代码拷入记事本,选择菜单“文件-保存或另存为”,
将文件存到“C:\Program Files\Adobe\Photoshop CS\预置\脚本”目录中(根据实际安装位置),
文件名可以输入中文,如“图片加框和EXIF信息.js”等,在编码栏里选unicode,
使用:在Photoshop CS菜单中选择:文件-〉脚本,就可以看到相应的菜单项了。
代码:
//—
//在Photoshop CS中文版中加框和EXIF信息
//将自己需要修改的部分作详细说明,以便于各位自己修改
displayDialogs = DialogModes.NO;
var defaultRulerUnits = preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;
function explodeArray(item,delimiter) {
tempArray=new Array(1);
var Count=0;
var tempString=new String(item);
while (tempString.indexOf(delimiter)>0) {
tempArray[Count]=tempString.substr(0,tempString.indexOf(delimiter));
tempString=tempString.substr(tempString.indexOf(delimiter)+1,tempString.length-tempString.indexOf(delimiter)+1);
Count=Count+1;
}
tempArray[Count]=tempString;
return tempArray;
}
var AD = activeDocument;
var resRatio = AD.resolution/72;
if(resRatio!=1){
AD.resizeImage(AD.width.value,AD.height.value,72);
}
var heightVar = AD.height.value+2;
var photoWidth = AD.width.value;
var photoHight = AD.height.value;
//获取EXIF信息,注意相关参数的具体位置
var exifData = AD.info.exif.toString();
explodeArray(exifData,”,”);
var stringTemp=”";
var make=”";
var camera=”";
var focLength=”";
var expTime=”";
var lensUsed=”";
var ISONum=”";
var dateTime=”";
var Lens=”";
var psVersion=0;
//判别Photoshop CS是中文版还是英文版
for(n = 0; n < tempArray.length; n = n + 2 ) {
stringTemp=tempArray[n];
if(stringTemp.indexOf(”Make”)!=-1){
psVersion=1;
}
break;
}
if(psVersion == 0)
{
//—————————————————————-
//Photoshop CS中文版使用以下部分获取EXIF信息
for(n = 0; n < tempArray.length; n = n + 2 ) {
stringTemp=tempArray[n];
//————————————————-
//对于有的相机型号不包括制造商部分,请使用以下3行代替下面的相机型号部分
//if(tempArray[n]==”EXIF tag 10027″){
//make=tempArray[n-3];
//}
//相机型号
if(tempArray[n]==”EXIF tag 10027″){
camera=make+tempArray[n-1];
}
//快门速度和光圈大小
if(tempArray[n]==”EXIF tag 13343″){
expTime = tempArray[n-1];
lensUsed = tempArray[n+1];
}
//ISO设置
if(stringTemp.indexOf(”EXIF tag 13485″)!=-1){
ISONum = “, ISO:” + tempArray[n+1];
}
//拍摄日期、时间
if(tempArray[n]==”EXIF tag 13686″){
dateTime = tempArray[n+1];
}
//使用的焦距
if(tempArray[n]==”EXIF tag 13738″){
focLength = tempArray[n+1];
}
}
}
else
{
//Photoshop CS英文版使用以下部分获取EXIF信息
for(n = 0; n < tempArray.length; n = n + 2 ) {
stringTemp=tempArray[n];
//———————————————-
//对于有的相机型号不包括制造商部分,请增加以下3行
//if(stringTemp.indexOf(”Make”)!=-1){
//make = tempArray[n+1];
//}
//相机型号
if(stringTemp.indexOf(”Model”)!=-1){
camera = make+tempArray[n+1];
}
//光圈大小
if(stringTemp.indexOf(”F-Stop”)!=-1){
var lensUsed = tempArray[n+1];
}
//快门速度
if(stringTemp.indexOf(”Exposure Time”)!=-1){
expTime = tempArray[n+1];
}
//ISO设置
if(stringTemp.indexOf(”ISO Speed Ratings”)!=-1){
ISONum = “, ISO “+tempArray[n+1];
}
//拍摄日期、时间
if(stringTemp.indexOf(”Date Time Original”)!=-1){
dateTime = tempArray[n+1];
}
//使用焦距
if(tempArray[n]==”Focal Length”){
focLength=tempArray[n+1];
}
}
}
//改变日期格式
var dateArray1 = dateTime.split(” “);
if(psVersion == 0)
{
//Photoshop CS中文版使用以下两行
var phoDate = dateArray1[1];
var phoTime = dateArray1[2];
}
else
{
//Photoshop CS英文版使用以下两行
var phoDate = dateArray1[0];
var phoTime = dateArray1[1];
}
var dateArray2 = phoDate.split(”:”);
var monthsArray =["January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"];
phoDate = monthsArray[dateArray2[1]-1]+” “+dateArray2[2]+” “+dateArray2[0];
//——————————————————–
//你有什么镜头,就根据镜头和最大焦距改吧
//要是焦段重叠也没法玩,还是比较一下吧
var focLength1=parseInt(focLength);
if(focLength1>=17 && focLength1<=40){
Lens = “Canon 17-40mm F4L USM”;
}
if(focLength1>=70 && focLength1<=200){
Lens = “Canon 70-200mm F4L USM”;
}
if(focLength1==”85″){
Lens = “Canon 85mm F1.8 USM”;
}
if(focLength1==”100″){
Lens = “Canon Macro 100mm F2.8 USM”;
}
//——————————————————–
//定义黑色,你也可以定义其他颜色哟
var black = new SolidColor();
black.rgb.red = black.rgb.green = black.rgb.blue = 0;
//定义白色,你也可以定义其他颜色哟
var white = new SolidColor();
white.rgb.red = white.rgb.green = white.rgb.blue = 255;
//定义蓝色,你也可以定义其他颜色哟
var blue = new SolidColor();
blue.rgb.red = 0; blue.rgb.green = 0; blue.rgb.blue = 255;
//标字和参数
var infoLayer = AD.artLayers.add();
infoLayer.kind = LayerKind.TEXT;
var TI = infoLayer.textItem;
//右对齐,如果左对齐可以省略下面这行
//TI.justification = Justification.RIGHT;
//标字的位置 (左边距,底边距)
TI.position = [10,photoHight-28];
//显示:相机型号,镜头,焦距,曝光时间,光圈,ISO设置等
TI.contents =camera+”, “+Lens+” @”+focLength+”,”+expTime+”,”+lensUsed+ISONum ;
//字体、字号、颜色等
TI.font = “System”;
TI.size = 12;
TI.color = blue;
var info2Layer = AD.artLayers.add();
info2Layer.kind = LayerKind.TEXT;
var TI = info2Layer.textItem;
//显示:拍摄日期及时间等 ,当然你也可以加上网址等信息
TI.position = [10,photoHight-10];
TI.contents =” Date/Time: “+phoDate+” “+phoTime + “ Http://blog.zol.com.cn/eyoungsky” ;
//字体、字号、颜色等
TI.font = “System”;
TI.size = 12;
TI.color = blue;
//如果为白框,字体为黑色
//TI.color = black;
//AD.flatten();
//上一行为拼合图像,
//—
修改代码时注意,//表示本行后面的内容是注释,对不需要的功能只需在该行前加上//就可以,而要使用原来取消的功能,就将其实前面的//删掉,其它的都有说明。



当前没有评论!
第一个在本文留言。