Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.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 无法使用imagick保存webp格式-已解决_Php_Jpeg_Imagick_Webp - Fatal编程技术网

Php 无法使用imagick保存webp格式-已解决

Php 无法使用imagick保存webp格式-已解决,php,jpeg,imagick,webp,Php,Jpeg,Imagick,Webp,我正在开发一个面板,在其中我上传一个jpg,它复制它,调整它的大小,保存另一个jpg,现在我也想能够创建一个副本,但使用webp扩展 我到处都查过了,找不到有同样问题的人。 我在CentOS上运行cPanel cPanel>版本:ImageMagick 6.9.10-68 Q16 x86_64 2020-04-01 $imagick = new \Imagick($targetJpg); $imagick->writeImage('webp:'.$targetWebp); 我遇到了这个

我正在开发一个面板,在其中我上传一个jpg,它复制它,调整它的大小,保存另一个jpg,现在我也想能够创建一个副本,但使用webp扩展

我到处都查过了,找不到有同样问题的人。 我在CentOS上运行cPanel cPanel>版本:ImageMagick 6.9.10-68 Q16 x86_64 2020-04-01

$imagick = new \Imagick($targetJpg); 
$imagick->writeImage('webp:'.$targetWebp);
我遇到了这个错误

致命错误:未捕获的ImagickException:委托失败“%cwebp” -安静的%Q'%i'-o'%o'@error/delegate.c/InvokeDelegate/1928 in/…dirs…/pic upload.php:108堆栈跟踪:#0 /…dirs…/pic upload.php(108): Imagick->writeimage('webp:../images/…')#1

=========================================================

在我的本地机器OSX中,使用Mamp,通过@MarkSetchell help解决了这个问题

在OSX>终端上 类型:cwebp-版本 WebP1.1.0

类型:cwebp类型 cwebp是散列的(/usr/local/bin/cwebp)

标记解决方案>有效:) 在macOS上,您的cwebp似乎是/usr/local/bin中的自制配置文件,因此我建议您找到名为delegates.xml的Imagick配置文件,并对其进行编辑,以便在其中显示“cwebp”-quiet-q%q“%I”。。。它变成'/usr/local/bin/cwebp'-quiet-q

=========================================================

百分之五十

未安装cwebp或dwebp。这是因为没有安装libwebp工具包

我安装了它们并进行了检查-结果: [root@server:/】$cwebp在哪里 cwebp:/usr/bin/cwebp/usr/share/man/man1/cwebp.1.gz [root@server:/]$dwebp在哪里 dwebp:/usr/bin/dwebp/usr/share/man/man1/dwebp.1.gz

现在一切正常 希望这对其他人有用。
感谢Mark和Chris的帮助

您有什么版本的Imagick?您的Mac电脑上是否安装了
webp
,并使用
brew安装webp
?请同时粘贴
cwebp-version
type cwebp
@ChrisHaas in cPanel>版本的输出:ImageMagick 6.9.10-68 Q16 x86_64 2020-04-01@MarkSetchell$cwebp-Version1.1.0$cwebp用法:cwebp[选项]-q quality input.png-o output.webp,其中质量介于0(差)到100(非常好)之间。典型值约为80。Try-longhelp提供了一个详尽的高级选项列表。我不明白为什么您在同一个问题中混淆了macOS和CentOS的内容,但我认为PHP Imagick无法找到您的
cwebp
程序。至少在macOS上,您的
cwebp
似乎是
/usr/local/bin
中的自制配置文件,因此我建议您找到名为
delegates.xml的Imagick配置文件,并对其进行编辑,使其显示
'cwebp'-quiet-q%q'%I'…
的位置变为
'/usr/local/bin/cwebp'-quiet-q..