我目前正在共享托管网站上使用Imagemagick。Imagemagick也安装在这个网站上。它的versionString是ImageMagick 6.8.9-9 Q16 x86_64 2018-06-26
,versionNumber是1673
。
现在我的问题是:我想要将REMOTE FILE
转换为png图像,以便以后使用。为了实现这一点,我目前正在使用这个PHP脚本:
<?php
exec( "/usr/bin/convert convert https://www.google.com/favicon.ico favicon.png" );
?>
但此命令不会在同一文件夹中创建文件favicon.png
。但是,如果我下载favicon.ico文件并将其存储在服务器上,我可以使用以下命令,它可以完美地工作:
<?php
exec( "/usr/bin/convert convert favicon.ico favicon.png" );
?>
那么,我如何在imagemagick中使用convert命令来使用远程文件,而不将文件存储在服务器上?我还尝试使用$Imagick->getImageBlob();
-> https://secure.php.net/manual/de/imagick.getimageblob.php创建一个新的图像对象,并将输出插入到exec();命令中,如下所示
<?php
exec( "/usr/bin/convert convert " . $Imagick->getImageBlob() . "favicon.png" );
?>
在PHP中。但它只显示了该命令可能是一次攻击的错误。
我希望你能帮助我解决这个问题,并提前感谢!
PS: I can not edit anything in the Imagemagick settings or update the class/package either.
发布于 2018-07-28 06:19:48
wget -O- https://www.google.com/favicon.ico | convert ico:- favicon.jpg
说明:您应该下载带有"wget“的文件,并将其输出到标准输出中,然后通过管道将其转换为"convert”。"ico:-“-这意味着输入文件类型为"image/ico”,并从stdin中获取它。
或者直接使用:
$imagick = new Imagick();
$imagick->readImageBlob("https://www.google.com/favicon.ico");
$image->writeImage('favicon.png');
https://stackoverflow.com/questions/51565506
复制相似问题