在用php的imagick在访问远程URL图片的时候会出现Failed to read the file问题,这是因为imagick读取不了远程url导致的。
翻了翻imagick手册,发现了一个Imagick::readImageBlob,从字面上的意思来看,就是读取图片的二进制代码,看到这里就有思路了。
imagick不能读取远程图片,但是php可以啊。file_get_contents返回的正好是二进制代码。那么可以这样子实现:
<?php
$url = 'https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png';
$image = new Imagick();
$image->readImageBlob(file_get_contents($url));
header('Content-type: '.$image->getImageFormat());
echo $image->getImageBlob();
$image->destroy();
?>
这样子就把远程图片输出来了。
本文介绍了一种解决PHP中Imagick无法直接加载远程URL图片的问题的方法。通过使用Imagick::readImageBlob结合file_get_contents函数,实现了远程图片的有效读取与输出。
5367

被折叠的 条评论
为什么被折叠?



