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

图片要上传到网上前拿原图缩小是经常要做咯重要一步,毕竟除脱“多图杀猫”以外,还要声明“大图预警”。假设图片全是横式搭竖式倒也好办,Photoshop里一个批处理就可以解决。只不过,假设图片横竖全有,比方说要求竖图高么800像素,横图宽为800像素就难办哉,要么拿横竖图片分开来处理。对伊种“人工智能”就可以做却要动用“人肉智能”的事体本人是弗大欢喜做的:)。所以依是一顿东拼西凑搞出伊个脚本文件,假设恁想让横竖图片分别可以定义最大边倒也不是忒难,可以自家试一试。

#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        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;
}



因为本博经常被坏人用机器自动注册海外“垃圾帐号”,所以关脱了注册功能。假设恁?注册过用户也不要紧,只要拿上头咯代码复制到记事本,保存成扩展名是“jsx”咯文件就可以落Photoshop里加载使用哉。
[本日志由 parno 于 2019-08-18 02:05 AM 更新]
上一篇: 2018高中组网安试题(7.30)
下一篇: Edexcel AS and A level ActiveBook 1-10 etc.
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: Photoshop 批处理 jsx
相关日志:
评论: 0 | 引用: 0 | 查看次数: 4376
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 500 字 | UBB代码 关闭 | [img]标签 关闭