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