[英]Can't Use ImageMagick (convert) command in PHP
putenv("PATH=/usr/local/bin:/usr/bin:/bin");
完整命令路径“ /usr/bin/convert test.png test.webp
”(在终端中工作)
所有 PHP CMD 命令包括: exec()
shell_exec()
system()
passthru()
(所有这些 output 都是空的,但是像echo $PWD
这样的简单命令有效)
图片完整路径“ convert /home/pi/www/test.png /home/pi/www/test.webp
”(以及上述所有变体)
非常感谢任何帮助!
在 php shell_exec 命令中使用 2>&1 并尝试此代码;
$file = "/home/pi/www/test.png";
$dest = "/home/pi/www/test.webp";
$result = '';
$file_extension = strtolower(pathinfo($file, PATHINFO_EXTENSION));
if(extension_loaded("cwebp") || extension_loaded('gif2webp')) {
if($file_extension=="png" or $file_extension=="jpg" or $file_extension=="jpeg"){
$result = shell_exec("cwebp -q 80 ".escapeshellarg($file)." -o ".escapeshellarg($dest) . " 2>&1");
}
if($file_extension=="gif"){
$result = shell_exec("gif2webp -q 80 ".escapeshellarg($file)." -o ".escapeshellarg($dest) . " 2>&1");
}
} else if(extension_loaded("gmagick") || extension_loaded('imagick')) {
if($file_extension=="png" or $file_extension=="jpg" or $file_extension=="jpeg" or $file_extension=="gif"){
$result = shell_exec("convert ".escapeshellarg($file)." -quality 80 -define webp:lossless=true ".escapeshellarg($dest) . " 2>&1");
}
} else {
die("Does not have any webp library!");
}
echo $result;
我不知道你的 Imagick 版本,一些 arguments 可能因版本而异,但它可能会给你的代码一些想法。
您在 PHP 中还有一个 imagick 扩展: https://www.php.net/manual/fr/book.imagick.php
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.