PHP 如何在 Imagemagick 命令中使用远程文件
How to use Remote File within Imagemagick Command in PHP
我目前在共享托管网站空间上使用 Imagemagick。 Imagemagick 也安装在这个网站空间上。它的 versionString 是 ImageMagick 6.8.9-9 Q16 x86_64 2018-06-26
,它的 versionNumber 是 1673
。
现在我的问题:
我想将 REMOTE FILE
例如 https://www.google.com/favicon.ico 转换为 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.
wget -O- https://www.google.com/favicon.ico | convert ico:- favicon.jpg
说明:
您应该使用 "wget" 下载文件并输出到标准输出,然后将其通过管道传输到 "convert"。
"ico:-" - 这意味着输入文件类型 "image/ico" 并从标准输入中获取它。
或者直接使用:
$imagick = new Imagick();
$imagick->readImageBlob("https://www.google.com/favicon.ico");
$image->writeImage('favicon.png');
我目前在共享托管网站空间上使用 Imagemagick。 Imagemagick 也安装在这个网站空间上。它的 versionString 是 ImageMagick 6.8.9-9 Q16 x86_64 2018-06-26
,它的 versionNumber 是 1673
。
现在我的问题:
我想将 REMOTE FILE
例如 https://www.google.com/favicon.ico 转换为 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.
wget -O- https://www.google.com/favicon.ico | convert ico:- favicon.jpg
说明: 您应该使用 "wget" 下载文件并输出到标准输出,然后将其通过管道传输到 "convert"。 "ico:-" - 这意味着输入文件类型 "image/ico" 并从标准输入中获取它。
或者直接使用:
$imagick = new Imagick();
$imagick->readImageBlob("https://www.google.com/favicon.ico");
$image->writeImage('favicon.png');