[英]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
然后根據這個答案我打開/etc/ImageMagick-6/policy.xml
並將<policy domain="coder" rights="none" pattern="PDF" />
更改為<policy domain="coder" rights="read|write" pattern="PDF" />
但仍然不起作用並且$output
總是返回空數組
PS:我不想使用 PHP 擴展名,已經用過了,它有一些缺陷
Convert 將其 output 寫入磁盤 ( result.jpg
)。 exec()
的 output 參數(如果將任何 output 發送到標准輸出)。 如果您想要$output
中的圖像數據,請指定一個 output 文件-
。
引用手冊頁:
默認情況下,“文件”的圖像格式由其幻數決定。 要指定特定的圖像格式,請在文件名前加上圖像格式名稱和冒號(即 ps:image)或將圖像類型指定為文件名后綴(即 image.ps)。 對於標准輸入或 output,將“文件”指定為“-”。
請在 Imagemagick 和 PHP 中做一些測試,看看你的版本是什么。 請提供為每個返回的任何消息。
<?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>";}
?>
你收到什么消息?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.