首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Photoshop动作到Photoshop脚本?

从Photoshop动作到Photoshop脚本?
EN

Stack Overflow用户
提问于 2011-04-26 21:37:17
回答 5查看 22.5K关注 0票数 19

我希望Photoshop对给定的文件夹自动执行以下任务:

  1. 将所有PNG文件加载到给定文件夹中。
  2. 将每个文件的模式转换为RGB color
  3. 在每个文件中添加一个层
  4. 将文件保存为PSD在同一个文件夹中

有人告诉我,这可以用Photoshop脚本来完成,但我不知道如何开始,因为不幸的是,我对JavaScript没有太多的经验。

我知道的一件事是,我不能使用Actions运行上面的任务,因为当我记录最后一步(4)时,Photoshop记录了在记录宏时(而不是用来加载原始PNG文件的)文件夹中保存PSD文件的操作。换句话说,它将目标文件夹修复为宏中使用的文件夹。

这就引出了以下问题:有办法自动生成运行给定动作的Photoshop Javascript代码吗?

如果是这样的话,我不介意学习如何修改脚本来修复上面的文件夹问题。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-05-27 15:40:11

我制作了一个脚本来完成所需的工作:

代码语言:javascript
复制
#target photoshop
#strict on

runthis();
function runthis()
{
    var path = "/d/PhotoshopScript/Images/";

     var inputFolder = new Folder(path );
    var inputFiles = inputFolder.getFiles("*.png");

    for(index in inputFiles)
    {
        // open the file
        var fileToOpen = new File(inputFiles[index]);
        open(fileToOpen);

        // Change mode to rgb
        activeDocument.changeMode(ChangeMode.RGB);
        // add a new layer
        activeDocument.artLayers.add();

        //save
        var psdOptions = new PhotoshopSaveOptions();
        psdOptions.alphaChannels = true;
        psdOptions.annotations = false;
        psdOptions.embedColorProfile = false;
        psdOptions.layers = true;
        psdOptions.spotColors = false;

        var file = new File(path + GetFileName(String(inputFiles[index])));
        activeDocument.saveAs(file, psdOptions);

        activeDocument.close();

        // dispose
        fileToOpen = null;
        psdOptions = null;
        file  = null;
    }
    // dispose
    inputFolder = null;
    inputFiles = null;

}

function GetFileName(fullPath)
{
    var m = fullPath.match(/(.*)[\/\\]([^\/\\]+)\.\w+$/);
    return m[2];
}

它可以在许多方面得到改进,但我希望它能有所帮助。

票数 13
EN

Stack Overflow用户

发布于 2012-06-28 22:26:40

让我用粗体回答你实际问的问题:有一个工具可以自动生成Photoshop中正在发生的动作和事件的Javascript。它被称为脚本侦听器。在使用脚本侦听器记录您的操作后,检查日志并进行选择性编辑。

开始使用脚本侦听器

  1. 关闭Photoshop
  2. ScriptListener.8li C:\Program\Adobe CS5\Scripting\实用程序文件夹复制文件
  3. 将文件粘贴到C:\Program\Adobe\5\插件\Automate文件夹。
  4. 运行Photoshop,执行您希望在脚本中发生的操作。
  5. 关闭Photoshop,从自动文件夹中删除脚本侦听器的副本。
  6. 编辑脚本侦听器放置在桌面上的日志文件。

要将您新开发的脚本放到Photoshop中,将您用jsx扩展名创建的文件放置到C:\Program \Adobe\Adobe CS5\Presets\中。

票数 24
EN

Stack Overflow用户

发布于 2013-08-28 00:58:31

我意识到这是一个古老的问题,但最初的帖子要求什么可以完全在Photoshop行动中完成。Photoshop操作很容易记录--您只需点击记录并手动执行步骤。-包括打开、操作和保存步骤。

剩下的唯一技巧是让操作在特定的文件夹中运行,而不是在您记录操作的位置运行。不过,这很容易。使用“覆盖打开”和“重写保存”选项。使用文件->自动处理->批处理或使用-> Photoshop ->操作从Adobe调用此操作

下面是一个例子:

关于一些附加技巧,看这儿

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5796764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档