用于批量更改打開的圖片的尺寸的photoshop 腳本 (javascript)。
用法:
把解壓出來的 “改變尺寸.jsx” 文件復制到 “ps安裝目錄/預置/腳本” 下,重新打開ps以后就可以在~
[菜單- 文件-腳本] 里面找到 “改變尺寸”
或者解壓出來,在開著ps的情況下,直接雙擊也可以用。
功能介紹:
1. 可以把當前文檔(包括未保存過的)直接修改尺寸并保存為jpg。(注意會關閉當前文檔?。?br />2. 可以針對整個文件夾進行操作。(程序設定為“不包括隱藏文件”,因此不想處理和不能處理的文件可以先設置為[隱藏]屬性)
3. 可選擇另存jpg 、gif、psd、tiff至另一個文件夾。
4. 另存時支持文件名前后添加字符。
5. 處理進度條,在大量文件處理的時候對進度掌握更好。(3月2日修正了隱藏文件導致進度條不準的bug)
6. 修改了改變尺寸的算法,允許對不需要控制的尺寸留空(小于1或不填寫即為留空,留空值將根據選項 不改變或者等比計算)
7. 水印添加功能—可以平鋪或添加獨個的水?。徊⒖梢允褂胮s眾多的圖層混合模式。
8. 修正了1.2版本保存gif 格式時顏色位數錯誤的bug 。
如果有朋友問:想要半透明水印怎么辦?想要傾斜水印怎么辦?
答:把水印文件做成半透明(保存為png或者psd 之類)和傾斜的即可,腳本界面就不另外放置參數了。
界面圖示:
腳本下載
其他舊版本及具體版本更新情況請到論壇交流:
|||
#target photoshop
app.bringtofront();
// 帶自動判斷橫豎的統一寬高操作。默認是直接保存關閉,原文件要注意備份! v2.0 - 2008.3.29
// 原發:bbs.blueidea.com - photoshop版
var nowtime=new date();
var presolution = 72;
var startrulerunits = app.preferences.rulerunits;
var starttypeunits = app.preferences.typeunits;
app.preferences.rulerunits = units.pixels;
app.preferences.typeunits = typeunits.pixels;
var title="批量尺寸調整 v2.0 - "
res ="dialog { /
text:'"+title+"直接保存并關閉',/
group: group{orientation: 'column',alignchildren:'left',/
top:statictext{text:'默認為直接覆蓋保存 - 請注意選擇或做好備份'},/
timeline:progressbar{bounds:[0,0,300,10] , minvalue:0,maxvalue:100}/
corrdination: panel { orientation: 'row', /
text: '需要尺寸', /
x: group { orientation: 'row', /
s: statictext { text:'寬:' }, /
e: edittext { preferredsize: [50, 20] } ,/
p: statictext { text:'px' }, /
}, /
y: group { orientation: 'row', /
s: statictext { text:'高:' }, /
e: edittext { preferredsize: [50, 20] }, /
p: statictext { text:'px' }, /
} ,/
}, /
a:group{ orientation: 'row', /
c: checkbox { text:' 保持原圖寬高比,新尺寸僅作外框限定',helptip:'原圖比例不變,調整后寬/高均小于等于輸入值'} ,/
}, /
b:group{ orientation: 'row', /
c: checkbox { text:' 不判斷原圖橫豎',helptip:'不根據原圖的橫豎自動對應尺寸,寬/高均以輸入為準'} ,/
}, /
now:group{ orientation: 'row', /
c: checkbox { text:' 對文件夾進行操作(否則處理所有目前打開的文檔)'} ,/
}, /
foldero:group{ orientation: 'row', /
b: button {text:'待處理文件夾', properties:{name:'open'} ,helptip:'選擇您需要處理的文件所在的文件夾'},/
s: edittext { text:'', preferredsize: [180, 20] },/
},/
shui:group{ orientation: 'row', /
c: checkbox { text:' 為圖片添加水印'} ,/
g: group {/
one:radiobutton {text:'單一' ,helptip:'只添加一個水印圖,可控制添加位置'},/
fill:radiobutton {text:'平鋪' ,helptip:'多個水印圖平鋪布滿畫面,可控制間距'},/
}/
}, /
shuiset: panel {orientation: 'row', /
text: '水印設置', /
position:group{ orientation: 'column',alignchildren:'left',/
po1:group{ orientation: 'row',/
c1:checkbox { helptip:'以左上角為基準', preferredsize: [14, 14]} ,/
c2:checkbox { helptip:'以上中點為基準', preferredsize: [14, 14]} ,/
c3:checkbox { helptip:'以右上角為基準', preferredsize: [14, 14]} ,/
}, /
po2:group{ orientation: 'row', /
c4:checkbox { helptip:'以左中點為基準', preferredsize: [14, 14]} ,/
c5:checkbox { helptip:'以正中心為基準', preferredsize: [14, 14]} ,/
c6:checkbox { helptip:'以右中點為基準', preferredsize: [14, 14]} ,/
}, /
po3:group{ orientation: 'row', /
c7:checkbox { helptip:'以左下角為基準', preferredsize: [14, 14]} ,/
c8:checkbox { helptip:'以下中點為基準', preferredsize: [14, 14]} ,/
c9:checkbox { helptip:'以右下角為基準', preferredsize: [14, 14]} ,/
}, /
},/
other:group{ orientation: 'column',alignchildren:'left',/
dis:group{ orientation: 'row',/
s1: statictext { text:'平距:'}, /
e1: edittext { preferredsize: [55, 20], helptip:'距離參照點的水平距離;平鋪狀態下為間距(單位:像素)' } ,/
s2: statictext { text:'垂距:'}, /
e2: edittext { preferredsize: [55, 20], helptip:'距離參照點的垂直距離;平鋪狀態下為間距(單位:像素)' } ,/
},/
hun:group{ orientation: 'row',/
s: statictext { text:'混合:'}, /
d:dropdownlist { alignment:'left', itemsize: [50,16] },/
s2: statictext { text:'縮放:'}, /
e:edittext{ preferredsize: [38, 20], text:'1',helptip:'水印與原始水印文件的縮放比例'},/
},/
open:group{ orientation: 'row', /
b: button {text:'選擇水印文件', properties:{name:'open'} ,helptip:'請確保文件為常用圖片格式,且非gif動畫'},/
e: edittext { text:'', preferredsize: [86, 20] },/
},/
},/
},/
other:group{ orientation: 'row', /
c: checkbox {text:' 啟用另存'} ,/
g: group {/
jpeg:radiobutton {text:'jpeg'},/
gif:radiobutton {text:'gif'},/
psd:radiobutton {text:'psd'},/
tiff:radiobutton {text:'tiff'},/
}/
}, /
otherset: panel {orientation: 'column',alignchildren:'left',/
text: '另存設置', /
quality: group { orientation: 'row', /
c: checkbox { text:'轉換 icc 配置',helptip:'在儲存前將 icc 配置文件轉換為 srgb'} ,/
s: statictext { text:'壓縮質量:' }, /
d: dropdownlist { alignment:'left', itemsize: [26,14] },/
c2:checkbox {text:'透明',helptip:'包含基于顏色不透明度的透明性'},/
}, /
head: group { orientation: 'row', /
s: statictext { text:'在文件名前添加字符:' }, /
e: edittext { preferredsize: [50,20] } ,/
s2: statictext { text:'勿含非法字符' , enabled:flase }, /
}, /
foot: group { orientation: 'row', /
s: statictext { text:'在文件名后添加字符:' }, /
e: edittext { preferredsize: [50, 20] }, /
s2: statictext { text:'勿含非法字符' , enabled:flase}, /
} ,/
otherf:group{ orientation: 'row', /
c: checkbox { text:' 另存至其他文件夾'} ,/
}, /
folders:group{ orientation: 'row', /
b: button {text:'另存至', properties:{name:'save'} ,helptip:'選擇您處理好的文件要保存至的文件夾'},/
s: edittext { text:'', preferredsize: [180, 20] },/
},/
icc: checkbox { text:' 儲存時包含 icc 配置文件',helptip:'存為 gif 格式時此選項無效'},/
},/
},/
buttons: group { orientation: 'row', alignment: 'right',/
s:statictext {text:'[about]'},/
btnok: button { text:'確定', properties:{name:'ok'} }, /
btncancel: button { text:'取消', properties:{name:'cancel'} } /
}, /
}";
win = new window (res);
win.buttons.btncancel.onclick = function () { //放棄
app.preferences.rulerunits = startrulerunits;
app.preferences.typeunits = starttypeunits;
this.parent.parent.close();
}
win.buttons.s.onclick = function () {
alert("首發:bbs.blueidea.com photoshop專欄/r/n鳴謝:我愛藍色、銀子、蛋蛋、clz8206、洛辰妃子、wonton",title+"關于");
}
function lock_b(){ //如果勾選了a,則b被鎖定
if(win.group.a.c.value){
win.group.b.c.value=true;
}
}
win.group.a.c.onclick =function() { lock_b()};
win.group.b.c.onclick =function() { lock_b()};
// 打開文件夾的操作
var folderopen=win.group.foldero
var foldersave=win.group.otherset.folders
folderopen.b.onclick = function() {
var defaultfolder = folderopen.s.text;
var testfolder = new folder(defaultfolder);
if (!testfolder.exists) {
defaultfolder = "~";
}
var selfolder = folder.selectdialog("選擇待處理文件夾", defaultfolder);
if ( selfolder != null ) {
folderopen.s.text = selfolder.fsname;
folderopen.s.helptip = selfolder.fsname.tostring();
}
}
foldersave.b.onclick = function() {
var defaultfolder = foldersave.s.text;
var testfolder = new folder(defaultfolder);
if (!testfolder.exists) {
defaultfolder = "~";
}
var selfolder = folder.selectdialog("選擇要儲存至的文件夾", defaultfolder);
if ( selfolder != null ) {
foldersave.s.text = selfolder.fsname;
foldersave.s.helptip = selfolder.fsname.tostring();
}
}
win.group.shuiset.other.open.b.onclick= function() //打開水印文件
{
var selfile = file.savedialog('選擇水印文件');
if ( selfile != null ) {
win.group.shuiset.other.open.e.text = selfile.fsname;
}
}
// 初始化選項
if (app.documents.length == 0){
win.group.now.c.value = true;
win.group.foldero.enabled =true;
}else{
win.group.foldero.enabled =false;
}
win.group.other.g.enabled =false;
win.group.otherset.enabled =false;
win.group.other.g.jpeg.value = true; //默認保存為jpg
win.group.otherset.icc.value =true; //默認保存icc
var savetype = "jpeg";
win.group.otherset.quality.c2.hide(); //隱藏第二選框
for (i=0;i<13;i++){ //初始化jpeg質量下拉
win.group.otherset.quality.d.add("item", i );
}
win.group.otherset.quality.d.items[7].selected=true;
win.group.otherset.quality.d.helptip ='jpeg 壓縮質量 (值越大壓縮后質量越高)';
win.group.shuiset.enabled =false;
win.group.shui.g.enabled =false;
win.group.shui.g.one.value =true; //默認一個水印
win.group.shuiset.position.po3.c9.value=true; //默認右下角
var jiashui =false; //默認不添加水印
var sblend= new array();
sblend[0]= "正常,normal";
sblend[1]= "溶解,dissolve";
sblend[2]= "變暗,darken";
sblend[3]= "正片疊底,multiply";
sblend[4]= "顏色加深,colorburn";
sblend[5]= "線性加深,linearburn";
sblend[6]= "變亮,lighten";
sblend[7]= "濾色,screen";
sblend[8]= "顏色減淡,colordodge";
sblend[9]= "線性減淡,lineardodge";
sblend[10]= "疊加,overlay";
sblend[11]= "柔光,softlight";
sblend[12]= "強光,hardlight";
sblend[13]= "亮光,vividlight";
sblend[14]= "線性光,linearlight";
sblend[15]= "點光,pinlight";
sblend[16]= "實色混合,hardmix";
sblend[17]= "差值,difference";
sblend[18]= "排除,exclusion";
sblend[19]= "色相,hue";
sblend[20]= "飽和度,saturation";
sblend[21]= "顏色,colorblend";
sblend[22]= "明度,luminosity";
//sblend[23]= "深色,darkercolor";
//sblend[24]= "淺色,lightercolor";
for (i=0;i<23;i++) {
win.group.shuiset.other.hun.d.add("item",sblend[i].substring(0,sblend[i].indexof(",")));
}
win.group.shuiset.other.hun.d.items[0].selected=true;
//操作文件夾開關
win.group.now.c.onclick =function(){
if (win.group.foldero.enabled) {
win.group.foldero.enabled =false;
}else{
win.group.foldero.enabled =true;
}
}
//另存開關
win.group.other.c.onclick =function(){
if (win.group.otherset.enabled) {
win.group.other.g.enabled =false;
win.group.otherset.enabled =false;
win.text=title+'直接保存并關閉';
}else{
win.group.other.g.enabled = true;
win.group.otherset.enabled =true;
win.text=title+'另存為并關閉';
if (!win.group.otherset.otherf.c.value) {win.group.otherset.folders.enabled =false}
}
}
//另存至文件夾開關
win.group.otherset.otherf.c.onclick =function(){
if (win.group.otherset.folders.enabled) {
win.group.otherset.folders.enabled =false;
}else{
win.group.otherset.folders.enabled =true;
}
}
//水印開關
win.group.shui.c.onclick =function(){
if (win.group.shui.g.enabled) {
win.group.shui.g.enabled =false;
win.group.shuiset.enabled =false;
}else{
win.group.shui.g.enabled =true;
win.group.shuiset.enabled =true;
}
}
//定位開關
var allp=win.group.shuiset.position;
function pointclear(nowp) {
allp.po1.c1.value =false;
allp.po1.c2.value =false;
allp.po1.c3.value =false;
allp.po2.c4.value =false;
allp.po2.c5.value =false;
allp.po2.c6.value =false;
allp.po3.c7.value =false;
allp.po3.c8.value =false;
allp.po3.c9.value =false;
nowp.value =true;
}
allp.po1.c1.onclick =function() {pointclear(this)}
allp.po1.c2.onclick =function() {pointclear(this)}
allp.po1.c3.onclick =function() {pointclear(this)}
allp.po2.c4.onclick =function() {pointclear(this)}
allp.po2.c5.onclick =function() {pointclear(this)}
allp.po2.c6.onclick =function() {pointclear(this)}
allp.po3.c7.onclick =function() {pointclear(this)}
allp.po3.c8.onclick =function() {pointclear(this)}
allp.po3.c9.onclick =function() {pointclear(this)}
//格式選項轉換
win.group.other.g.jpeg.onclick =function() {
changetype("jpeg");}
win.group.other.g.gif.onclick =function() {
changetype("gif");}
win.group.other.g.psd.onclick =function() {
changetype("psd");}
win.group.other.g.tiff.onclick =function() {
changetype("tiff");}
//格式選項控制
function changetype(type){
savetype=type;
var don=win.group.otherset.quality;
switch (type) {
case "jpeg" :
don.c.text ='轉換 icc 配置' ;
don.c.helptip ='在儲存前將 icc 配置文件轉換為 srgb'
don.c.value =false;
don.s.text ='壓縮質量:';
don.d.helptip ='jpeg 壓縮質量 (值越大壓縮后質量越高)';
don.d.removeall();
for (i=0;i<13;i++){
don.d.add("item", i );
}
don.d.items[7].selected=true;
don.s.show();
don.d.show();
don.c2.hide();
win.text=title+'另存為 jpg 格式';
break;
case "gif" :
don.c.text ='啟用擴散仿色' ;
don.c.helptip ='儲存為 gif 格式時使用擴散防色算法'
don.c.value =true;
don.s.text ='顏色位數:';
don.d.helptip ='gif 顏色位數 (值越大壓縮后質量越高)';
don.d.removeall();
for (i=2;i<257;i=i*2){
don.d.add("item",i);
}
don.d.items[7].selected=true;
don.c2.value =true;
don.s.show();
don.d.show();
don.c2.show();
win.text=title+'另存為 gif 格式';
break;
case "psd" :
don.c.text ='最大兼容' ;
don.c.helptip ='儲存為 psd 格式是實現最大兼容'
don.c.value =true;
don.s.hide();
don.d.hide();
don.c2.hide();
win.text=title+'另存為 psd 格式';
break;
case "tiff" :
don.c.text ='lzw壓縮' ;
don.c.helptip ='用 tiff 格式儲存時使用 lzw 壓縮'
don.c.value =false;
don.s.hide();
don.d.hide();
don.c2.hide();
win.text=title+'另存為 tiff 格式';
}
win.reload();
}
function fillpattern(name,id,opacity) { //填充圖案
var desc4 = new actiondescriptor();
desc4.putenumerated( charidtotypeid( "usng" ), charidtotypeid( "flcn" ), charidtotypeid( "ptrn" ) );
var desc5 = new actiondescriptor();
desc5.putstring( charidtotypeid( "nm " ), name );
//desc5.putstring( charidtotypeid( "idnt" ), id );
desc4.putobject( charidtotypeid( "ptrn" ), charidtotypeid( "ptrn" ), desc5 );
desc4.putunitdouble( charidtotypeid( "opct" ), charidtotypeid( "#prc" ), opacity );
desc4.putenumerated( charidtotypeid( "md " ), charidtotypeid( "blnm" ), charidtotypeid( "nrml" ) );
executeaction( charidtotypeid( "fl " ), desc4, dialogmodes.no );
};
function setpattern(name) { //定義圖案
var desc13 = new actiondescriptor();
var ref7 = new actionreference();
ref7.putclass( charidtotypeid("ptrn") );
desc13.putreference( charidtotypeid("null"), ref7 );
var ref8 = new actionreference();
ref8.putproperty( charidtotypeid("prpr"),charidtotypeid("fsel") );
ref8.putenumerated( charidtotypeid("dcmn"), charidtotypeid("ordn"), charidtotypeid("trgt") );
desc13.putreference( charidtotypeid("usng"), ref8 );
desc13.putstring( charidtotypeid("nm "), name );
executeaction( charidtotypeid("mk "), desc13, dialogmodes.no );
}
function delpattern(){ //刪除圖案
var desc92 = new actiondescriptor();
var ref53 = new actionreference();
ref53.putindex( charidtotypeid( "ptrn" ), 178 );
desc92.putreference( charidtotypeid( "null" ), ref53 );
executeaction( charidtotypeid( "dlt " ), desc92, dialogmodes.no );
}
// 實際處理開始
function newsize(docref,a,b,x,y){ //改變圖象尺寸函數
var pw=x;
var ph=y;
if (x<1 || y<1) b=true; //有一個值空缺的時候,不判斷橫豎
if (!b && x<y){ //確保pw>=ph
pw=y;
ph=x;
}
var dw = docref.width;
var dh = docref.height;
var fw = pw;
var fh = ph;
if(!b && dh>dw){
fw = ph;
fh = pw;
}
if (x<1) fw=dw; //尺寸小于1則為 不做改變
if (y<1) fh=dh;
if(a){
w1 =dw/fw;
h1 =dh/fh;
if(w1>h1){
fh =dh/w1;
}else{
fw =dw/h1;
}
if (x<1 && y>=1) {fw=dw/h1;fh=y;} //有1個值不做限定的情況
if (y<1 && x>=1) {fh =dh/w1;fw=x;}
}
docref.resizeimage(fw, fh, presolution, resamplemethod.bicubic);
}
|||
function shui(){ //水印處理函數
if (!win.group.shuiset.other.open.e.text) {
alert("您沒有選擇水印文件");
}else{
var shuiflie = file(win.group.shuiset.other.open.e.text);
docshui= open(shuiflie);
docshui.changemode(changemode.rgb);
if (docshui.layers.length>1) docshui.mergevisiblelayers(); //合并可見層
var shuilayer = docshui.activelayer;
if (parseint(shuilayer.bounds.tostring().replace(//d/g,"")) == 0) {
docshui.close(saveoptions.donotsavechanges);
if(confirm("水印文件內容為空,繼續操作將不會添加任何水印")) go(false);//繼續操作,只是不添加水印
}else{
//拷貝水印
var suo=number(win.group.shuiset.other.hun.e.text);
if (!suo) suo=1; //容錯
if (suo<0) suo=1;
docshui.resizeimage(docshui.width*suo,docshui.height*suo,presolution, resamplemethod.bicubic); //變換水印大小
var sw=number(shuilayer.bounds[2]-shuilayer.bounds[0]);
var sh=number(shuilayer.bounds[3]-shuilayer.bounds[1]);
docshui.selection.selectall();
docshui.selection.copy();
docshui.close(saveoptions.donotsavechanges);
//新建文檔定義水印為圖案
if (win.group.shui.g.fill.value){
var newdr = app.documents.add(number(win.group.shuiset.other.dis.e1.text)+sw, number(win.group.shuiset.other.dis.e2.text)+sh, 72, "shuitu", newdocumentmode.rgb, documentfill.transparent);
newdr.paste();
newdr.selection.selectall();
setpattern("blueidea-script-watermark-"+nowtime.tostring());
newdr.close(saveoptions.donotsavechanges);
newdr= null;
}
go(true,sw,sh);
}
}
}
function pasteshui(nwidth,nheight,movex,movey,sw,sh,shun){ //粘貼水印及偏移or 填充
app.activedocument.changemode(changemode.rgb);
if(win.group.shui.g.one.value){
switch (true) {
case (allp.po1.c1.value||allp.po2.c4.value||allp.po3.c7.value):
nowmx=movex-nwidth/2+sw/2;
break;
case (allp.po1.c2.value||allp.po2.c5.value||allp.po3.c8.value):
nowmx=movex;
break;
case (allp.po1.c3.value||allp.po2.c6.value||allp.po3.c9.value):
nowmx=nwidth/2-movex-sw/2;
break;
default :
nowmx=0;
}
switch (true) {
case (allp.po1.c1.value||allp.po1.c2.value||allp.po1.c3.value):
nowmy=movey-nheight/2+sh/2;
break;
case (allp.po2.c4.value||allp.po2.c5.value||allp.po2.c6.value):
nowmy=movey;
break;
case (allp.po3.c7.value||allp.po3.c8.value||allp.po3.c9.value):
nowmy=nheight/2-movey-sh/2;
break;
default :
nowmy=0;
}
app.activedocument.paste();
app.activedocument.activelayer.translate (nowmx,nowmy);
}else{
app.activedocument.artlayers.add();
app.activedocument.selection.selectall();
fillpattern("blueidea-script-watermark-"+nowtime.tostring(),"id",100);
}
app.activedocument.activelayer.blendmode =eval("blendmode."+shun);
}
function save(docref) { //儲存函數
if (win.group.other.c.value){ //判斷是否另存
var don=win.group.otherset.quality;
var inembedicc=win.group.otherset.icc.value;
var saveoptions;
switch (savetype) {
case "jpeg" :
docref.flatten() ;//合并圖層,以儲存jpg
docref.changemode(changemode.rgb); // 更改為rgb模式,避免其它模式無法儲存
docref.bitsperchannel = bitsperchanneltype.eight;
saveoptions = new jpegsaveoptions();
saveoptions.quality = don.d.selection.index; //獲取壓縮質量
if (don.c.value) {
docref.convertprofile("srgb iec61966-2.1", intent.relativecolorimetric, true, true);
}
saveoptions.embedcolorprofile = inembedicc;
var typename="jpg"; //定義后綴
break;
case "gif" :
if (docref.artlayers.length>1)docref.mergevisiblelayers(); //合并可見層
docref.changemode(changemode.rgb);
saveoptions = new gifsaveoptions();
saveoptions.colors = math.pow(2,don.d.selection.index+1);
if (don.c.value){
saveoptions.dither = dither.diffusion; //擴散仿色
}else{
saveoptions.dither = dither.none;
} ;
if (don.c2.value) {
saveoptions.transparency=1;
}else{
saveoptions.transparency=0;
};
//saveoptions.matte = mattetype.none; //雜邊無,否則為白色
saveoptions.interlaced = 0; //不交錯
var typename="gif";
break;
case "psd" :
saveoptions = new photoshopsaveoptions();
saveoptions.embedcolorprofile = inembedicc;
var typename="psd";
break;
case "tiff" :
docref.flatten() ;
saveoptions = new tiffsaveoptions();
saveoptions.embedcolorprofile = inembedicc;
if (don.c.value) {
saveoptions.imagecompression = tiffencoding.tifflzw;
} else {
saveoptions.imagecompression = tiffencoding.none;
}
var typename="tif";
break;
default :
alert ("-_-!!! savetype");
}
// 獲取另存文件夾及前后追加字段
var headword = win.group.otherset.head.e.text;
var footword = win.group.otherset.foot.e.text;
if (win.group.otherset.otherf.c.value){ //如果選中另存至文件夾
if (win.group.otherset.folders.s.text){
var savefolder = win.group.otherset.folders.s.text+"/";
}else{
var savefolder = docref.path+"/newsize_"; //容錯,避免沒有具體選擇另存到那個文件夾
}
}else{
if (headword || footword){
var savefolder = docref.path+"/";
}else{
var savefolder = docref.path+"/newsize_"; //容錯,避免沒有添加前后綴而保存在本文件夾
}
}
if (docref.name.lastindexof('.')==-1){ //根據原文件名有否后綴,判斷是否去掉后綴
var oldname=docref.name;
}else{
var oldname=docref.name.substring(0,docref.name.lastindexof('.'));
}
docref.saveas(new file(savefolder + headword + oldname + footword + "."+ typename),saveoptions, true,extension.lowercase); //設定輸出文件名稱
}else{
docref.save();
}
docref.close(saveoptions.donotsavechanges); //關閉當前文檔
}
function go(shuiok,sw,sh) { //最后循環處理及關閉
var x=number(win.group.corrdination.x.e.text);
var y=number(win.group.corrdination.y.e.text);
var a=win.group.a.c.value;
var b=win.group.b.c.value; //選中則不顛倒橫豎,以輸入值為準
if (savetype=="psd"){ //變更首選項
var remembermaximize = app.preferences.maximizecompatibility; //psd格式最大兼容 原始選項 --記錄
var needmaximize = win.group.otherset.quality.c.value? querystatetype.always : querystatetype.never;
if ( app.preferences.maximizecompatibility != needmaximize ) {
app.preferences.maximizecompatibility = needmaximize;
}
}
if (shuiok){ //獲取水印偏移量及混合模式
var mdis =win.group.shuiset.other.dis;
var movex=number(mdis.e1.text),movey=number(mdis.e2.text);
for (i=0;i<23;i++) {
if (win.group.shuiset.other.hun.d.items[i].selected==true){
var shun=sblend[i].substring(sblend[i].indexof(",")+1);
break;
}
}
}
if (!win.group.now.c.value) { // 當前活動文檔為操作對象
var k=100/app.documents.length; //定義每個文件所占進度比例
while (app.documents.length){
var docref = app.activedocument;
newsize(docref,a,b,x,y);
if(shuiok) pasteshui(number(docref.width),number(docref.height),movex,movey,sw,sh,shun);
save(docref);
win.group.timeline.value =win.group.timeline.value+k;
}
}else{ // 文件夾為操作對象
var openfolder = folder(win.group.foldero.s.text);
var filelist = openfolder.getfiles() //獲取open文件夾下所有文件
var k=100/filelist.length;
for (i=0;i<filelist.length;i++){
if (filelist[i] instanceof file && filelist[i].hidden == false){ //不處理隱藏文件
open(filelist[i]);
var docref = app.activedocument;
newsize(docref,a,b,x,y);
if(shuiok) pasteshui(number(docref.width),number(docref.height),movex,movey,sw,sh,shun);
save(docref);
}
win.group.timeline.value =win.group.timeline.value+k;
}
}
if ( remembermaximize != undefined ) app.preferences.maximizecompatibility = remembermaximize; //psd格式最大兼容選項還原
app.preferences.rulerunits = startrulerunits;
app.preferences.typeunits = starttypeunits;
if (shuiok && win.group.shui.g.fill.value) delpattern(); //清除圖案定義
this.parent.parent.close();
}
win.buttons.btnok.onclick = function () {
if (win.group.shui.c.value) {
shui(); //處理水印及最后完成
}else{
go(false);
}
}
win.center();
win.show();
新聞熱點
疑難解答