最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PhotoShop給圖片自動(dòng)添加邊框及EXIF信息的JS腳本

 更新時(shí)間:2015年02月15日 09:49:32   投稿:junjie  
這篇文章主要介紹了PhotoShop給圖片自動(dòng)添加邊框及EXIF信息的JS腳本,本文給出效果圖和實(shí)現(xiàn)代碼,需要的朋友可以參考下

作為一名“攝影愛(ài)好者”(好吧我承認(rèn)我不太合格,我才玩攝影沒(méi)幾天-_-!!)總有一件事情避免不了,就是讓照片帶上EXIF的參數(shù),雖然本人的部落格已經(jīng)安裝了插件可以顯示出EXIF信息,但是感覺(jué)插件還是不太給力,此外還要考慮到一些綜合的操作,比如批量的調(diào)整大小,增加版權(quán)信息等等。

當(dāng)然,好在我們還要PS,我們還可以寫(xiě)PS的腳本讓他來(lái)按照我們的想法來(lái)進(jìn)行某些操作:)嘿嘿,從無(wú)忌論壇的一個(gè)帖子找到了一個(gè)PS腳本,按照自己的想法略加了一些修改(主要是時(shí)間,鏡頭識(shí)別,以及焦距識(shí)別)效果圖見(jiàn)題圖。有了腳本就方便許多了,比如你想要批量的增加EXIF邊框,那么很簡(jiǎn)單,錄制個(gè)動(dòng)作,然后批處理運(yùn)行這個(gè)動(dòng)作就好啦:)

最后,附上這個(gè)腳本:

displayDialogs = DialogModes.NO; 
var defaultRulerUnits = preferences.rulerUnits; 
preferences.rulerUnits = Units.PIXELS; 

//將一個(gè)長(zhǎng)字串分解成單個(gè)字符串
function explodeArray(item) { 
	var i=0;
	var Count=0; 
	var tempString=new String(item); 
	tempArray=new Array(1); 

	do{ 
		i=tempString.indexOf(":");
		if(i>0)
			tempString=tempString.substr(i+1,tempString.length-i-1);
		i=tempString.indexOf(">");
		if(i>0)	{
			tempArray[Count]=tempString.substr(0,i); 
			tempString=tempString.substr(i+1,tempString.length-i-1);
			Count ++;
		}
		i=tempString.indexOf("<");
		if(i>0) {
			tempArray[Count]=tempString.substr(0,i); 
			tempString=tempString.substr(i-1,tempString.length-i+1);
			Count ++;
		}
	}while (tempString.indexOf("</x:xmpmeta>")>0);

	tempArray[Count]=tempString; 
	return tempArray; 
} 

var i=0;
var j=0;
var k=0;
var pResulotion=72;
var AD="";
var resRatio="";
var imageRatio="";
var dateArray1="";
var dateArray2="";
var monthsArray="";
var exposureProgramArray="";
var phoDate="";
var phoTime="";
var photoWidth="";
var photoHight="";
var exifData="";
var black=""; 
var white=""; 
var grey="";
var fWidth="";
var fHight="";
var tSize="";
var tLeft="";
var tHight="";
var infoLayer="";
var TI="";
nameLayer=""; 
var TN=""; 
var stringTemp="";		//臨時(shí)字串
var make="";			//相機(jī)公司
var model="";			//相機(jī)型號(hào)
var camera="";			//相機(jī)
var lens="";			//鏡頭類(lèi)型
var lensUsed="";		//使用的鏡頭
var focalLength=""; 		//焦距
var exposureTime=""; 		//快門(mén)
var fNumber="";			//光圈
var ISOSpeedRatings="";		//ISO設(shè)置
var dateTimeOriginal="";	//拍攝時(shí)間
var exposureBiasValue="";	//曝光補(bǔ)償
var exposureProgram="";		//曝光程序模式
var fired=""; 			//閃光模式
//改成你自己想寫(xiě)的,比如版權(quán)所有和你自己的網(wǎng)名等
//如果為空,將采用相機(jī)設(shè)置的名字

var creator="Photo By Kaisir";	//拍攝者


AD = activeDocument; 

//Aglin 編制了自動(dòng)改變圖象大小為網(wǎng)上交流大小的代碼,
//稍加修改,如果寬窄任一邊大于1000,就自動(dòng)剪裁
//這里最長(zhǎng)邊為750,最短邊為500
//請(qǐng)根據(jù)自己相機(jī)拍出來(lái)的圖像比例設(shè)置長(zhǎng)寬比
//如果不用可以去掉
//--------------------------------------------
var resizeMax=1024;
var resizeMin=678;
if(AD.width.value > 1500 || AD.height.value > 1500) {
	imageRatio = AD.width.value/AD.height.value;
	if(imageRatio>1)
		AD.resizeImage(resizeMax,resizeMin,pResulotion,ResampleMethod.BICUBICSHARPER); 
	if(imageRatio==1)
		AD.resizeImage(resizeMax,resizeMax,pResulotion,ResampleMethod.BICUBICSHARPER); 
	if(imageRatio<1)
		AD.resizeImage(resizeMin,resizeMax,pResulotion,ResampleMethod.BICUBICSHARPER); 
}
//--------------------------------------------


resRatio = AD.resolution/pResulotion; 
if(resRatio!=1){ 
	AD.resizeImage(AD.width.value,AD.height.value,pResulotion); 
} 


photoWidth = AD.width.value; 
photoHight = AD.height.value; 

//獲取RAW保存的信息
exifData = AD.xmpMetadata.rawData.toString();

//將EXIF信息分成單個(gè)的相關(guān)信息
explodeArray(exifData); 

//Photoshop CS獲取EXIF信息

//快門(mén)速度
for(n = 0; n < tempArray.length; n ++) 
{ 
	stringTemp=tempArray[n];
	if(stringTemp.indexOf("ExposureTime")!=-1)
	{ 
		exposureTime = tempArray[n+1]; 
		break;
	} 
}

//光圈大小
for(n = 0; n < tempArray.length; n ++) { 
	stringTemp=tempArray[n];
	if(stringTemp.indexOf("FNumber")!=-1){ 
		fNumber = tempArray[n+1];
		break;
	} 
}

//曝光程序模式
for(n = 0; n < tempArray.length; n ++) { 
	stringTemp=tempArray[n];
	if(stringTemp.indexOf("ExposureProgram")!=-1){ 
		exposureProgram = tempArray[n+1]; 
		break;
	} 
}

//曝光補(bǔ)償
for(n = 0; n < tempArray.length; n ++) { 
	stringTemp=tempArray[n];
	if(stringTemp.indexOf("ExposureBiasValue")!=-1){ 
		exposureBiasValue = tempArray[n+1]; 
		break;
	} 
}

//閃光模式
for(n = 0; n < tempArray.length; n ++) { 
	stringTemp=tempArray[n];
	if(stringTemp.indexOf("Fired")!=-1){ 
		fired = tempArray[n+1]; 
		break;
	} 
}

//拍攝日期、時(shí)間
for(n = 0; n < tempArray.length; n ++) { 
	stringTemp=tempArray[n];
	if(stringTemp.indexOf("DateTimeOriginal")!=-1){ 
		dateTimeOriginal = tempArray[n+1]; 
		break;
	} 
}

//使用焦距
for(n = 0; n < tempArray.length; n ++) { 
	stringTemp=tempArray[n];
	if(tempArray[n]=="FocalLength"){ 
		focalLength = tempArray[n+1];
		break;
	} 
}

//ISO設(shè)置
for(n = 0; n < tempArray.length; n ++) { 
	stringTemp=tempArray[n];
	if(stringTemp.indexOf("ISOSpeedRatings")!=-1){ 
		ISOSpeedRatings = ", ISO "+tempArray[n+5]; 
		break;
	} 
}

//使用鏡頭類(lèi)型
for(n = 0; n < tempArray.length; n ++) { 
	stringTemp=tempArray[n];
	if(tempArray[n]=="Lens"){ 
		lens=tempArray[n+1]; 
		break;
	} 
}


//相機(jī)廠商
for(n = 0; n < tempArray.length; n ++) { 
	stringTemp=tempArray[n];
	if(stringTemp.indexOf("Make")!=-1){ 
		make = tempArray[n+1]; 
		break;
	} 
}

//相機(jī)型號(hào)
for(n = 0; n < tempArray.length; n ++) { 
	stringTemp=tempArray[n];
	if(stringTemp.indexOf("Model")!=-1){ 
		var model = tempArray[n+1]; 
		break;
	} 
}
//對(duì)于有的相機(jī)型號(hào)不包括制造商部分
//camera = make+model; 
//對(duì)于有的相機(jī)型號(hào)包括制造商部分
camera = model; 

//相機(jī)所有者
for(n = 0; n < tempArray.length; n ++) { 
	stringTemp=tempArray[n];
	if(stringTemp.indexOf("creator")!=-1 && creator==""){ 
		creator = tempArray[n+5]; 
		break;
	} 
}

//檢查快門(mén)速度
dateArray1 = exposureTime.split("/");
j = dateArray1[0];
i = dateArray1[1];
if(j/i>=1)
	exposureTime=parseInt(j/i)+"."+(j-parseInt(j/i)*i);
else
{
	i=parseInt(i/j);
	j=1;
	exposureTime=j+"/"+i;
}

//計(jì)算光圈大小
dateArray1 = fNumber.split("/");
i = dateArray1[0];
j = dateArray1[1];
if(j>1)
	fNumber=i/j;
else
	fNumber=i;

//曝光補(bǔ)償換算成小數(shù)
dateArray1 = exposureBiasValue.split("/");
i = dateArray1[0];
j = dateArray1[1];
exposureBiasValue=i/j;

//小數(shù)點(diǎn)后面保留2位,就*100/100,保留一位,就*10/10
//這里保留了2位,20D可以不要這兩行
if(exposureBiasValue!=0)
	exposureBiasValue=parseInt(exposureBiasValue*100)/100;

if (exposureBiasValue > 0)
	exposureBiasValue="+"+exposureBiasValue;

//確定曝光程序模式
exposureProgramArray = ["未定義",
	"Manual",
	"Normal Program",
	"Aperture Priority",
	"Shutter Priority",
	"Creative Program",
	"Action Program",
	"Portrait Mode",
	"Landscape Mode"];
exposureProgram = exposureProgramArray[exposureProgram];

//檢查閃光模式
dateArray1 = fired;
if(dateArray1.indexOf("True")!=-1)
	fired="FlashOn";
else
	fired="FlashOff";


//檢查焦距
dateArray1 = focalLength.split("/");
i = dateArray1[0];
j = dateArray1[1];

focalLength=parseInt(i/j);




//改變?nèi)掌诟袷?
dateArray1 = dateTimeOriginal.split("T"); 
phoDate = dateArray1[0];
phoTime = dateArray1[1];
dateArray2 = phoDate.split("-"); 
monthsArray =["1", 
	"2", 
	"3", 
	"4", 
	"5",
	"6", 
	"7", 
	"8", 
	"9", 
	"10", 
	"11", 
	"12"]; 
phoDate = dateArray2[0]+"-"+monthsArray[dateArray2[1]-1]+"-"+dateArray2[2];
dateArray2 = phoTime.split("+");
phoTime = dateArray2[0];

//你有什么鏡頭,就根據(jù)鏡頭和最大焦距改吧

if(lens != "") {
	if(lens.indexOf("17.0-40.0 mm")!=-1)
		lensUsed = "Canon 17-40mm F4L USM"; 
}
//如果沒(méi)有鏡頭信息,就使用原來(lái)的辦法比較
else {
	var focLength=parseInt(focalLength);
	lensUsed="18-55mm 1:3.5-5.6G";
//	if(focLength>=17 && focLength<=40)
//		lensUsed = "Nikon"; 
//	if(focLength>=70 && focLength<=200)
//		lensUsed = "Nikon";
//	if(focLength=="85")
//		lensUsed = "Nikon"; 
//	if(focLength=="100")
//		lensUsed = "Nikon"; 
}

//畫(huà)線和框
//定義黑色,你也可以定義其他顏色喲
black = new SolidColor(); 
black.rgb.red = black.rgb.green = black.rgb.blue = 0; 

//定義白色,你也可以定義其他顏色喲
white = new SolidColor(); 
white.rgb.red = white.rgb.green = white.rgb.blue = 255; 

//定義灰色,你也可以定義其他顏色喲
grey = new SolidColor(); 
grey.rgb.red = grey.rgb.green = grey.rgb.blue = 50; 

//加入一條白線
backgroundColor = white; 

//如果改為黑線
//backgroundColor = black; 

//白線寬窄設(shè)為2或4,兩邊,實(shí)際寬度除以2
AD.resizeCanvas(AD.width.value+2,AD.height.value+2,AnchorPosition.MIDDLECENTER); 

//加入灰框
//backgroundColor = grey; 

//加入黑框
backgroundColor = black; 

//如果改為白框
//backgroundColor = white; 

//邊框?qū)挾群透叨?這里將黑框?qū)捳O(shè)為圖片寬度的1/40,兩邊,實(shí)際寬度再除以2
fWidth = parseInt(photoWidth/40);
fHight = parseInt(photoWidth/40);

//加框
AD.resizeCanvas(AD.width.value+fWidth,AD.height.value+fHight, AnchorPosition.MIDDLECENTER); 

//底部再加寬點(diǎn),便于寫(xiě)字
AD.resizeCanvas(AD.width.value,AD.height.value+fHight+fHight+fHight,AnchorPosition.TOPCENTER); 


//標(biāo)字和參數(shù) 
nameLayer = AD.artLayers.add(); 
nameLayer.kind = LayerKind.TEXT; 
TN = nameLayer.textItem; 

TN.contents = creator;

//版權(quán)字體、字號(hào)、顏色和加粗等 
TN.font = "STXingkai"; 

//右對(duì)齊
TN.justification = Justification.RIGHT;

//字號(hào)
tSize = parseInt((fWidth+10)/2);

//字體左邊距和下邊距
tLeft = photoWidth;
tHight = photoHight-fHight+tSize;

//標(biāo)字的位置
TN.position = [tLeft,tHight];

TN.size = tSize+4; 
TN.color = white; 

//如果為白框,字體為黑色
//TN.color = black; 

TN.fauxBold = true; 

infoLayer = AD.artLayers.add(); 
infoLayer.kind = LayerKind.TEXT; 
TI = infoLayer.textItem; 

//右對(duì)齊,如果左對(duì)齊可以省略下面這行
TI.justification = Justification.RIGHT;

tHight = photoHight+fHight+tSize;

//標(biāo)字的位置
TI.position = [tLeft,tHight];

//顯示:相機(jī)型號(hào),鏡頭,焦距,曝光時(shí)間,光圈,ISO設(shè)置,拍攝日期等

TI.contents = camera+", "+lensUsed+" @"+focalLength+"mm,"+exposureTime+"Sec,F/";
TI.contents = TI.contents+fNumber+", EV "+exposureBiasValue+ISOSpeedRatings;
//如果對(duì)曝光程式不感興趣,請(qǐng)去掉下面行
TI.contents = TI.contents+", "+exposureProgram+", "+fired;
TI.contents = TI.contents+"\u000D"+phoDate+" "+phoTime;

//字體、字號(hào)、顏色等 
TI.font = "黑體"; 
//TI.font = "Arial"; 

TI.size = tSize; 
TI.color = white; 

//如果為白框,字體為黑色
//TI.color = black; 

TI.fauxBold = true;

AD.flatten(); 

//-------------

相關(guān)文章

最新評(píng)論

山丹县| 阳朔县| 上犹县| 昆明市| 安丘市| 讷河市| 浮山县| 潞城市| 虎林市| 淮滨县| 河池市| 双流县| 镇巴县| 神木县| 莎车县| 搜索| 辽宁省| 松潘县| 乌鲁木齐县| 鄂尔多斯市| 宜宾市| 永城市| 怀化市| 邵阳市| 兴宁市| 乐安县| 金山区| 泸定县| 左权县| 从化市| 瑞安市| 龙川县| 陇南市| 陆河县| 和田市| 左权县| 洞头县| 社旗县| 双峰县| 礼泉县| 吉安市|