美文网首页
PhotoShop JavaScript 批处理 学习五

PhotoShop JavaScript 批处理 学习五

作者: fox_rabbit | 来源:发表于2018-09-07 17:02 被阅读0次
    • 生成随机字符
        在前面的处理中,我们都只是将文本修改了一次,更多的时候,我们要批量生成有随机字符的图片。首先我们实现一个生成随机数字字符串的函数。
    function GetNumStr(num)
    {
        var str='';
        for(var i=0;i<num;i++){
            str += Math.floor(Math.random()*10).toString();
        }
        return str
    }
    

      Math.random()可以生成0到1范围的随机数,乘以10再向下取整可得到0到9的整数,然后通过.toString()转化为字符串,根据我们输入的参数可以得到指定长度的随机数字字符串。
      我们执行这个函数:

    var fileRef = new File('E:/小黄人.psd');
    var docRef = app.open(fileRef);
    //图层的结构前面几篇有提到
    var MyTextlayer1 = docRef.layers[0].layers[0];
    
    MyTextlayer1.textItem.contents = GetNumStr(10);
    

      效果如下


    image.png
    • 批量保存
        我们把前面实现好的保存代码写成一个函数:
    function SaveJpg(num)
    {
        //获取当前活动文档
        var doc= activeDocument  
        var jpgOptions = new JPEGSaveOptions();  
        //enter number or create a variable to set quality 
        jpgOptions.quality = 8;  
        jpgOptions.embedColorProfile = true;   
        jpgOptions.formatOptions = FormatOptions.STANDARDBASELINE; 
        //only used with Progressive
        if(jpgOptions.formatOptions == FormatOptions.PROGRESSIVE){  
            jpgOptions.scans = 3};   
        jpgOptions.matte = MatteType.NONE;  
        
        var imgpath = 'E:/' + num.toString() + '.jpg';
        doc.saveAs (new File(imgpath), jpgOptions, true, Extension.LOWERCASE);
    }
    

      传入的参数是给文件命名使用
      接着批量生成图片

    var fileRef = new File('E:/小黄人.psd');
    var docRef = app.open(fileRef);
    var MyTextlayer1 = docRef.layers[0].layers[0];
    
    for(var i=0;i<5;i++)
    {
        MyTextlayer1.textItem.contents = GetNumStr(10);
        SaveJpg(i);
    }
    
    image.png

      在循环里也可以对文本图层做其他操作,自由发挥

    相关文章

      网友评论

          本文标题:PhotoShop JavaScript 批处理 学习五

          本文链接:https://www.haomeiwen.com/subject/hubcgftx.html