Photoshop使用批处理按比例设置图片宽度和高度的像素最大值

#target photoshop
app.bringToFront();

var PRESOLUTION = 72;

main();

function main() {

    
    var l = 800;
    l=prompt("请输入图片宽高的像素最大值:", "800");
    if(l==null){ return false; }
    if(!isInt(l)){
        alert("输入值只能是大于 0 的整数!");
        return false;
        }

    var topFolder = Folder.selectDialog("选择待处理文件夹", "~");
    var  fileList=new Array();
    fileList=FindAllFiles(topFolder.toString(), /\.(jpg|tif|psd|bmp|gif|png)$/i, fileList);

    for (var a=0; a<fileList.length; a++){

        open (fileList[a]);
        var oldPref = app.preferences.rulerUnits;
        app.preferences.rulerUnits = Units.PIXELS;
        var doc = app.activeDocument;
        var w = doc.width;
        var h = doc.height;
        
        if(h > l || w > l) {

            if (h > w){ //竖式
                w =Math.round( w * l / h);
                h = l;
             }else{
                 h = Math.round( h * l / w);
                 w = l;
                 }                    
             //alert(w + "," + h);
             doc.resizeImage(UnitValue(w,'px'),UnitValue(h,'px'));
             app.preferences.rulerUnits = oldPref;
             doc.close(SaveOptions.SAVECHANGES);
             }
         }                
    

    }

function isInt(v){
    return ((Math.round(v) == v) && v > 0);
    }

///////////////////////////////////////////////////////////////////////////////
// Function: FindAllFiles
// Usage: Find all the files in the given folder recursively
// Input: srcFolder is a string to a folder
//          destArray is an Array of File objects
// Return: Array of File objects, same as destArray
///////////////////////////////////////////////////////////////////////////////
function FindAllFiles( srcFolderStr, mask, destArray ) {
    var fileFolderArray = Folder( srcFolderStr ).getFiles();

    for ( var i = 0; i < fileFolderArray.length; i++ ) {
        var fileFoldObj = fileFolderArray[i];
        if ( fileFoldObj instanceof File ) {
            if (fileFoldObj.fullName.search(mask) ) { destArray.push( fileFoldObj ); }
        } else { // folder
            FindAllFiles( fileFoldObj.toString(), mask, destArray );
        }
    }

    return destArray;
}


上一篇: 2018高中组网安试题(7.30)
下一篇: Edexcel AS and A level ActiveBook 1-10 etc.
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: Photoshop 批处理 jsx
相关日志:
评论: 0 | 引用: 0 | 查看次数: 252
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 500 字 | UBB代码 关闭 | [img]标签 关闭