1

所以,我试图想出解决我遇到的问题的最佳方法。

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

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

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

4

2 回答 2

0

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

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

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

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

第一件事:考虑缓存图像并使用低流量时间来计算将来可能需要的图像。这真的让我的事情变得更容易了。

第二件事:尝试图像大小、dpi 等。图像越小 - 处理越快。

我的工作流程是:

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

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

于 2013-05-20T10:01:15.580 回答
0

嗯,这个问题也困扰了我很多年.. 我一直希望有一个 Photoshop 服务器,我可以通过 API 交谈并完成工作.. 好吧.. 我已经构建了一些更接近的东西......使用生成器插件我可以连接一个网络套接字并在 Photoshop 中注入 javascript。从技术上讲,您可以使用Photoshop 脚本指南完成任何可以完成的事情。...(包括操纵现有的 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 将被初始化..这个过程很慢。所以它并不适合繁忙的工作流程。

于 2017-03-05T15:11:09.973 回答