PHP 执行 ImageMagick - magick 转换不工作 ubuntu linux
PHP exec ImageMagick - magick convert not working ubuntu linux
我正在使用 ubuntu 并安装了 ImageMagick
identify -version
给出:
Version: ImageMagick 6.9.10-23 Q16 x86_64 20190101 https://imagemagick.org
Copyright: © 1999-2019 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP
Delegates (built-in): bzlib djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png tiff webp wmf x xml zlib
我试过了:
exec('magick img.jpg ( -clone 0 -fill white -colorize 100 ) ( -clone 0 -color-threshold "gray(251)-gray(254)" ) -compose over -composite -quality 80% result.jpg', $output, $return_var);
echo '<pre>' , var_dump($output) , '</pre>';
还有 convert
和 magick convert
而不是 magick
然后根据this的回答我打开了/etc/ImageMagick-6/policy.xml
并将 <policy domain="coder" rights="none" pattern="PDF" />
更改为 <policy domain="coder" rights="read|write" pattern="PDF" />
但仍然不起作用并且$output
总是returns空数组
PS:我不想使用 PHP 扩展,已经用过了,但它有一些缺陷
Convert 将其输出写入磁盘 (result.jpg
)。 exec()
的输出参数,如果用于标准输出的任何输出。如果你想要$output
中的图像数据,请指定-
.
的输出文件
引用手册页:
By default, the image format of 'file' is determined by its magic number. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). Specify 'file' as '-' for standard input or output.
请使用 PHP 在 Imagemagick 中进行一些测试以查看您的版本。请提供每个返回的消息。
<?php
echo "<pre>";
system("type -a convert");
echo "</pre>";
?>
<?php
exec("magick -version",$out,$returnval);
foreach($out as $text)
{echo "$text<br>";}
?>
这个有用吗?
<?php
exec('magick img.jpg \( -clone 0 -fill white -colorize 100 \) \( -clone 0 -color-threshold "gray(251)-gray(254)" \) -compose over -composite -quality 80% result.jpg 2>&1',$out,$returnval);
foreach($out as $text)
{echo "$text<br>";}
?>
你收到什么消息?
我正在使用 ubuntu 并安装了 ImageMagick
identify -version
给出:
Version: ImageMagick 6.9.10-23 Q16 x86_64 20190101 https://imagemagick.org
Copyright: © 1999-2019 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP
Delegates (built-in): bzlib djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png tiff webp wmf x xml zlib
我试过了:
exec('magick img.jpg ( -clone 0 -fill white -colorize 100 ) ( -clone 0 -color-threshold "gray(251)-gray(254)" ) -compose over -composite -quality 80% result.jpg', $output, $return_var);
echo '<pre>' , var_dump($output) , '</pre>';
还有 convert
和 magick convert
而不是 magick
然后根据this的回答我打开了/etc/ImageMagick-6/policy.xml
并将 <policy domain="coder" rights="none" pattern="PDF" />
更改为 <policy domain="coder" rights="read|write" pattern="PDF" />
但仍然不起作用并且$output
总是returns空数组
PS:我不想使用 PHP 扩展,已经用过了,但它有一些缺陷
Convert 将其输出写入磁盘 (result.jpg
)。 exec()
的输出参数,如果用于标准输出的任何输出。如果你想要$output
中的图像数据,请指定-
.
引用手册页:
By default, the image format of 'file' is determined by its magic number. To specify a particular image format, precede the filename with an image format name and a colon (i.e. ps:image) or specify the image type as the filename suffix (i.e. image.ps). Specify 'file' as '-' for standard input or output.
请使用 PHP 在 Imagemagick 中进行一些测试以查看您的版本。请提供每个返回的消息。
<?php
echo "<pre>";
system("type -a convert");
echo "</pre>";
?>
<?php
exec("magick -version",$out,$returnval);
foreach($out as $text)
{echo "$text<br>";}
?>
这个有用吗?
<?php
exec('magick img.jpg \( -clone 0 -fill white -colorize 100 \) \( -clone 0 -color-threshold "gray(251)-gray(254)" \) -compose over -composite -quality 80% result.jpg 2>&1',$out,$returnval);
foreach($out as $text)
{echo "$text<br>";}
?>
你收到什么消息?