簡體   English   中英

PHP 執行 ImageMagick - 魔法轉換不工作 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>';

convertmagick 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM