- 在线时间
- 355 小时
- 专家
- 0
- UID
- 354133
- 注册时间
- 2007-5-9
- 帖子
- 1204
- 精华
- 2
- 积分
- 1964
- 离线
- 364 天
- 帖子
- 1204
- 体力
- 1923
- 威望
- 41
|
发表于 2008-3-29 17:26:34
|显示全部楼层
按照惯例,帖脚本文件
- #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);
- }
复制代码 |
|