用于脚本的Web服务器上的Photoshop

时间:2013-02-07 14:17:39

标签: javascript webserver photoshop photoshop-script

所以,我正在考虑解决问题的最佳方法。

问题在于我为自己的工作制作了很多网站,而CSS3和HTML5自我介绍功能强大,我希望从我的网站中删除几乎所有图像。对于按钮图标和各种其他东西,我有一个带有所有图标的精灵图像,我只是根据我需要的图标移动。我需要做的是在Web服务器上动态地重新着色此图像,这样我就不必打开Photoshop并手动重新着色图标。

我做了一些研究,我遇到过的唯一有机会以我想要的方式工作的是Photoshop JavaScript。我的问题是,一旦我编写了我的脚本并重新显示了我的图标图像,它是否可以在服务器上完成,因此,当用户点击按钮时,图像会重新着色并保存到服务器上?

这是否需要在服务器上安装Photoshop?这甚至可能吗?

2 个答案:

答案 0 :(得分:0)

如您所知,Photoshop仅适用于Mac或Windows。

据我所知,您无法在Windows Server上安装Photoshop。 (我自己尝试使用CS4 - 也许它适用于CS6知识)。但是你可以在防火墙后面的Win 7机器上安装PS。

如果您使用Windows机器,则可以使用COM进行自动化。我试过了,效果很好。

我在一个中等流量的网页上用两个Mac和PS Javascript(Imagemagick,PIL等不适合我,因为工作太复杂)做了一个类似的事情。所以我不同意迈克尔斯的回答。

第一件事:考虑缓存图像并使用低流量时间来计算将来可能需要的图像。这对我来说真的很容易。

第二件事:尝试图像大小,dpi等。图像越小 - 过程越快。

我的工作流程是:

  • Webserver正在写入数据库(“嘿,我需要一个名为”path / bla.jpg的新图像“)。
  • Ajax调用正在检查图像是否存在。如果不是 - 显示“处理您的请求占位符”
  • 在防火墙后面的mac上以无限循环运行的脚本正在检查是否需要新图像。
  • 如果发现它正在更新数据库(“Mac One将计算此作业”)。这可以防止每台Mac都使用新图像。
  • 脚本正在调用Photoshop。 Photoshop正在计算图像。
  • 脚本将图像(我使用rsync)上传到网络服务器。
  • ajax-call会看到新图像并将其呈现给用户。
  • Mac上的脚本更新数据库“已成功创建图像”。

您将需要一些错误处理逻辑等。

答案 1 :(得分:0)

嗯这个问题多年来一直困扰着我...我总是希望有一个Photoshop服务器,我可以通过API进行交谈并完成任务......好吧......我已经建立了更接近的东西......使用生成器插件我可以连接思想一个网络套接字并在Photoshop中注入javascript。从技术上讲,你可以做任何可以使用photoshop scripting guide.完成的任务......(包括操纵现有的PDS)

此库https://github.com/Milewski/generator-exporter使用特殊语法导出所有标记的图层作为其所需格式... 此代码可以在服务器上运行..使用nodejs

import { Generator } from 'generator-exporter'
import * as glob from 'glob'
import * as path from 'path'

const files = glob.sync(
    path.resolve(__dirname, '**/*.psd')
);

const generator = new Generator(files, {
    password: '123456',
    generatorOptions: {
        'base-directory': path.resolve(__dirname, 'output')
    }
})


generator.start()
         .then(() => console.log('Here You Could Grab all the generated images and send back to client....'));

但是我不建议将此用于太多并发任务的大量使用...因为它需要在本地安装photoshop ... Photoshop GUI将被初始化..这个过程非常慢。所以它并不适合繁忙的工作流程。