我正在创建一个Web服务,该服务围绕用户根据他们在网页上输入的详细信息创建自定义图像文件。我已经完成了PSD文件以及附带的脚本,但是如何直接从我的PHP代码启动Photoshop脚本?
我研究过使用Droplet,但从我所看到的情况来看,我只能使用它们来对文件执行记录操作。
答案 0 :(得分:2)
这有点可能,但您需要提供有关您希望实现的内容的更多详细信息。这台服务器是mac还是windows?能够运行Photoshop的东西。
这是一个在终端内的Mac上用PHP从PHP执行PS脚本的内联示例。
$ php -r "`open -b \"com.adobe.Photoshop\" myPhotoshopScript.jsx`;"
或者更好的是,使用Symfony Process和Filesystem组件来管理它。
use Symfony\Component\Process\Process;
use Symfony\Component\Process\ProcessBuilder;
use Symfony\Component\Filesystem\Filesystem;
$fs = new Filesystem();
$photoshopProcessBuilder = new ProcessBuilder();
$photoshopProcessBuilder->setPrefix('open -b "com.adobe.Photoshop"');
if ($fs->exists($photoshopScriptFile)) {
$photoshopProcessBuilder->setArguments(array($photoshopScriptFile));
$photoshopScriptRunnerProcess = $photoshopProcessBuilder->getProcess();
$photoshopScriptRunnerProcess->run();
if (!$photoshopScriptRunnerProcess->isSuccessful()) {
throw new \RuntimeException($photoshopScriptRunnerProcess->getErrorOutput());
}
// do some other stuff
}
答案 1 :(得分:0)
看起来可行的唯一方法是记录加载脚本的动作并从动作中创建Droplet,然后从PHP执行它,将PSD作为参数传递。它没有我想要的那么优雅,但似乎没有任何其他建议。