【问题标题】:Photoshop - is there a programming language?Photoshop - 有编程语言吗?
【发布时间】:2016-12-01 00:19:38
【问题描述】:

我惊讶地发现 StackOverflow 有一个“Photoshop”标签,因为我需要将 Photoshop(- Pro,Creative Cloud 订阅)和编程(我是一位经验丰富的 Java、C#、C++ 软件工程师)结合起来用于一个艺术项目.

我想要一个最多包含 2000 个 JPEG 文件的文件夹,从第一个文件开始,隔离第一个文件的红色通道、第二个文件的绿色通道和第三个文件的蓝色通道,然后合并将它们放入一个新的 JPEG 文件中,然后保存。然后对接下来的 3 个文件、接下来的三个文件等重复此操作。

我最初计划为 C# 找到一个 JPEG 库并在那里完成所有工作,但如果我可以利用我经常用于其他东西的 Photoshop,那可能会更容易。 Photoshop 是否具有强大的脚本/编程语言,其语法与传统编程语言(条件循环、文件 i-o、用户定义的变量、函数或子例程等)足够相似?

【问题讨论】:

  • 您可以将 JavaScript 与 Photoshop adobe.com/content/dam/Adobe/en/products/photoshop/pdfs/cs6/… 一起使用,但我会使用 ImageMagick 进行上述操作。你怎么知道哪个是“first”文件和“second”
  • 文件是由相机每 n 毫秒拍摄 1 次(其中 n 类似于 600 或 1000)生成的,因此它们的文件名是由的时间戳,所以我可以使用文件名或实际创建时间。

标签: image-processing photoshop


【解决方案1】:

您可以使用 Javascript、VBScript(在 Windows 上)和 Applescript(在 Mac 上)编写 Photoshop - Adobe website

但是,对于这个简单的任务,我会使用 ImageMagick,它安装在大多数 Linux 发行版上,并且可以在 OS X 和 Windows 上免费使用。

所以,如果你从这三张图片开始:

您可以在 shell/终端/命令提示符中键入以下内容:

convert 1.png -separate -delete 1,2    \
     \( 2.png -separate -delete 0,2 \) \
     \( 3.png -separate -delete 0,1 \) -combine result.png

得到这个:

该命令获取第一张图像,将其拆分为 RGB 通道(内部编号为 R=0、G=1、B=2)并删除 G 和 B。然后它加载第二张图像,将其拆分为 RGB 通道并删除 R 和 B 以及第三个图像并删除除蓝色之外的所有图像。然后它将剩余的 3 个通道组合成一个输出图像。

如果您更改扩展名,它将对 JPEG 输入/输出图像起作用。

【讨论】:

  • 那么 ImageMagick 有 API 吗?在您的示例中,它看起来只需要命令行参数。我认为做我想做的事,我可以将程序指向一个充满文件的文件夹,读取文件名,按正确的顺序排序,计算它们,然后迭代它们,在真正的编程语言中会更容易做到。如果我想添加额外的功能,比如让用户选择放置频道的顺序,将操作限制在感兴趣的区域,或者给它一个用户友好的 UI 来浏览输入和输出文件夹,则更是如此.
  • 显然我不知道您的设置 - 您需要多久执行一次此操作,您需要多大的灵活性,或者您使用哪种操作系统。在 OSX 或 Linux 上,您在bash 中说的话会很容易,但如果您在 Windows 上可能会更难一些。 ImageMagick 有 C/C++、C#、dotNet、Perl、Java、PHP 绑定,如果你想要的话 - imagemagick.org/script/api.php
猜你喜欢
  • 1970-01-01
  • 2011-10-05
  • 2023-03-06
  • 2012-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多