2016-11-30 91 views
0

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

我想要一个文件夹最多可以有2000个JPEG文件,并且从第一个文件开始,隔离第一个文件的红色通道,第二个文件的绿色通道和第三个文件的蓝色通道,以及将这些文件合并成一个新的JPEG文件并保存。然后对接下来的3个文件,接下来的三个文件等等重复此操作。

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

+0

您可以使用JavaScript与JavaScript https://www.adobe.com/content/dam/Adobe/en/products/photoshop/pdfs/cs6/Photoshop-CS6-JavaScript-Ref.pdf,但我会做上述与** ImageMagick **。你怎么知道*“first”*文件和*“second”*是哪一个。 –

+0

这些文件是由摄像头每_n_毫秒(其中_n_就像600或1000)拍摄一次,因此它们的文件名由timedatestamp组成,因此我可以使用文件名或实际创建时间。 – user316117

回答

0

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

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

所以,如果你开始与这三个图像:

enter image description here

enter image description here

enter image description here

您可以键入以下到外壳/终端/命令提示符:

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

得到这个:

enter image description here

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

如果更改扩展名,它对JPEG输入/输出图像的工作方式也是一样。

+0

那么ImageMagick有API吗?在你的例子中,它看起来只有命令行参数。我想要做我想做的事情,我可以将程序指向一个文件夹,读取文件名,按正确的顺序排序,对它们进行计数,并对它们进行迭代,在真正的编程语言中更容易。更重要的是,如果我想添加其他功能,例如让用户选择放置频道的顺序,将操作限制在感兴趣的区域,或者为其提供用户友好的用户界面以浏览输入和输出文件夹。 – user316117

+0

很明显,我不知道你的设置 - 你需要多久才能做到这一点,你需要多少灵活性,或者你使用的是哪一种操作系统。在OSX或Linux上,你说的东西在'bash'中会很容易,但是如果你在Windows上可能有点困难。如果你需要ImageMagick,可以使用C/C++,C#,dotNet,Perl,Java,PHP绑定 - https://www.imagemagick.org/script/api.php –

相关问题