Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP运行Photoshop脚本?_Php_Photoshop_Photoshop Script - Fatal编程技术网

从PHP运行Photoshop脚本?

从PHP运行Photoshop脚本?,php,photoshop,photoshop-script,Php,Photoshop,Photoshop Script,我正在创建一个web服务,它围绕用户根据他们在网页上输入的详细信息创建自定义图像文件。我已经完成了PSD文件,以及附带的脚本,但是如何直接从PHP代码启动Photoshop脚本呢 我曾研究过使用液滴,但从我所看到的情况来看,我只能使用这些液滴在文件上执行录制的操作 看起来唯一可以完成的方法是记录一个加载脚本的操作,并从该操作中创建一个水滴,然后通过作为参数的PSD从PHP执行它。它没有我想要的那么优雅,但似乎没有任何其他建议。这是可能的,但你需要提供更多关于你希望实现的细节。这个服务器是mac还

我正在创建一个web服务,它围绕用户根据他们在网页上输入的详细信息创建自定义图像文件。我已经完成了PSD文件,以及附带的脚本,但是如何直接从PHP代码启动Photoshop脚本呢


我曾研究过使用液滴,但从我所看到的情况来看,我只能使用这些液滴在文件上执行录制的操作

看起来唯一可以完成的方法是记录一个加载脚本的操作,并从该操作中创建一个水滴,然后通过作为参数的PSD从PHP执行它。它没有我想要的那么优雅,但似乎没有任何其他建议。

这是可能的,但你需要提供更多关于你希望实现的细节。这个服务器是mac还是windows?能够运行Photoshop的东西

下面是一个在终端内的mac上使用PHP中的Photoshop执行PS脚本的内联示例

$ php -r "`open -b \"com.adobe.Photoshop\" myPhotoshopScript.jsx`;"
或者更好的是,使用和组件来管理这一点

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
}

请提供一些您尝试过的代码,以便问题更容易理解。我不知道如何将其表达得更简单。没有代码,因为我在问如何才能完成它。PHP脚本对Photoshop脚本(.jsx)进行编辑,当对匹配的PSD运行时,将按照用户指定进行所有编辑。似乎没有一种方法可以从命令行或类似的方式启动这两个脚本,所以我如何才能完成呢?不幸的是,我不知道Photoshop脚本是如何工作的。你的意思是想用PHP打开一个文件吗?我想用Photoshop脚本将更改提交到Photoshop.PSD文件。我知道这是可以做到的,我只是不知道怎么做。嗨,你有解决办法,如果有请与我分享。谢谢你的回复。所讨论的服务器是Windows,Symfony方法看起来确实是一种更好的方法。我在手机上,无法查看,但Symfony是否有用于访问COM对象的库?如果我可以访问Photoshop的COM API来阻止实际的GUI在服务器上启动,那就太完美了。@pablo Cool,我还需要在Windows上进行实验,应该非常类似。什么是COM API?我从未听说过这件事