批量更改圖片尺寸大小的photoshop腳本
互聯(lián)網(wǎng) 發(fā)布時(shí)間:2008-10-13 18:13:30 作者:佚名
我要評(píng)論
用于批量更改打開的圖片的尺寸的photoshop 腳本 (javascript)。
用法:
把解壓出來的 “改變尺寸.jsx” 文件復(fù)制到 “ps安裝目錄預(yù)置腳本” 下,重新打開ps以后就可以在~
[菜單- 文件-腳本] 里面找到 “改變尺寸”
或者解壓出來,在開著
function shui(){ //水印處理函數(shù)
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("水印文件內(nèi)容為空,繼續(xù)操作將不會(huì)添加任何水印")) go(false);//繼續(xù)操作,只是不添加水印
}else{
//拷貝水印
var suo=Number(win.group.shuiSet.other.hun.e.text);
if (!suo) suo=1; //容錯(cuò)
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) { //儲(chǔ)存函數(shù)
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() ;//合并圖層,以儲(chǔ)存jpg
docRef.changeMode(ChangeMode.RGB); // 更改為rgb模式,避免其它模式無法儲(chǔ)存
docRef.bitsPerChannel = BitsPerChannelType.EIGHT;
saveOptions = new JPEGSaveOptions();
saveOptions.quality = don.d.selection.index; //獲取壓縮質(zhì)量
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; //擴(kuò)散仿色
}else{
saveOptions.dither = Dither.NONE;
} ;
if (don.c2.value) {
saveOptions.transparency=1;
}else{
saveOptions.transparency=0;
};
//saveOptions.matte = MatteType.NONE; //雜邊無,否則為白色
saveOptions.interlaced = 0; //不交錯(cuò)
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_"; //容錯(cuò),避免沒有具體選擇另存到那個(gè)文件夾
}
}else{
if (headWord || footWord){
var saveFolder = docRef.path "/";
}else{
var saveFolder = docRef.path "/newsize_"; //容錯(cuò),避免沒有添加前后綴而保存在本文件夾
}
}
if (docRef.name.lastIndexOf('.')==-1){ //根據(jù)原文件名有否后綴,判斷是否去掉后綴
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); //設(shè)定輸出文件名稱
}else{
docRef.save();
}
docRef.close(SaveOptions.DONOTSAVECHANGES); //關(guān)閉當(dāng)前文檔
}
function go(shuiOK,sW,sH) { //最后循環(huán)處理及關(guān)閉
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; //選中則不顛倒橫豎,以輸入值為準(zhǔn)
if (saveType=="psd"){ //變更首選項(xiàng)
var rememberMaximize = app.preferences.maximizeCompatibility; //psd格式最大兼容 原始選項(xiàng) --記錄
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) { // 當(dāng)前活動(dòng)文檔為操作對(duì)象
var k=100/app.documents.length; //定義每個(gè)文件所占進(jìn)度比例
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{ // 文件夾為操作對(duì)象
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格式最大兼容選項(xiàng)還原
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();
相關(guān)文章

PS基礎(chǔ)教程之橡皮擦工具組和填充工具組使用知識(shí)
今天我們繼續(xù)來介紹ps基礎(chǔ)教程,這篇我們主要講橡皮擦工具組和填充工具組,這兩個(gè)工具在修圖的時(shí)候是比較常用的,下面我們就來看看基礎(chǔ)教程2025-05-01
photoshop圖層初識(shí) ps圖層相關(guān)概念與基本操作
ps圖層是什么?簡單來說,ps軟件中的圖層就好比是一張“透明紙”,將圖像的各個(gè)部分繪制在不同的“透明紙”上,可以看到紙后的東西,而且每層紙都是獨(dú)立的,下面我們就來看2025-04-25
PS基礎(chǔ)教程之學(xué)習(xí)應(yīng)用圖層樣式的基本方法
ps零基礎(chǔ)之圖層樣式的講解,在使用ps的時(shí)候,我們經(jīng)常會(huì)在圖層上添加一些效果,這就是圖層樣式,該怎么應(yīng)用呢?詳細(xì)請(qǐng)看下文介紹2024-12-23
ps如何把一張長圖切成幾張小圖片? ps把長圖切成短圖的技巧
有時(shí)候,我們希望能把一張圖片均勻地分成幾張圖片,就像拼圖一般的效果,需要某一部分隨時(shí)可以拿出來使用,該怎么操作呢?詳細(xì)請(qǐng)看下文介紹2024-09-10
PS調(diào)整字體大小是一個(gè)非?;A(chǔ)的操作,但也是非常實(shí)用的技能,在Photoshop中,調(diào)整字體大小的方式有多種,詳細(xì)請(qǐng)看下文介紹2024-02-02
ps窗口字體太小怎么調(diào) PS窗口字體大小調(diào)節(jié)技巧
但最近有用戶在使用photoshop時(shí)發(fā)現(xiàn)窗口界面的字體比較小,使用起來非常的不方便,因此有不少用戶想將其大小進(jìn)行調(diào)節(jié),具體該如何操作呢?詳細(xì)請(qǐng)看下文介紹2024-02-02
ps中圖層被父圖層鎖定怎么辦? 圖層被父圖層鎖定的解鎖技巧ps
ps中圖層被父圖層鎖定怎么辦?ps中圖層解鎖失敗,提示圖層被父圖層鎖定該怎么辦呢?下面我們就來看看詳細(xì)的解決辦法2023-12-19
ps描邊最大只有288怎么辦? Photoshop描邊只能調(diào)到288像素的解決辦法
ps描邊最大只有288怎么辦?ps描邊在使用的過程中,發(fā)現(xiàn)只能調(diào)到288像素,該怎么操作呢?下面我們就來看看Photoshop描邊只能調(diào)到288像素的解決辦法2023-11-30
PS工具欄中的工具有缺失怎么辦? Photoshop工具欄不全的多種解決辦法
PS工具欄中的工具有缺失怎么辦?ps工具欄中有很多工具,但是發(fā)現(xiàn)有些工具不見了,該怎么辦呢?下面我們就來看看Photoshop工具欄不全的多種解決辦法2023-11-30
Photoshop2024怎么下載安裝? ps2024安裝圖文教程
Photoshop2024怎么下載安裝?ps2024發(fā)布以后,很多朋友想要嘗試信工鞥,該怎么下載安裝呢?下面我們就來看看ps2024安裝圖文教程2023-11-30




