标签:php
以下是我获取图片的方式:
$coverurl = 'https://api.someurl/api/v1/img/' . $somenumber . '/l';
//$iheaders contains: 'Content-type' => 'image/jpeg'
$iresponse = wp_remote_get($coverurl, $iheaders);
$img = $iresponse['body'];
$testimg = base64_encode($img);
当我用img-tag回显$testimg时,一切正常.
echo '';
因为我需要将字符串转换为jpg并将其保存到我的uploads文件夹,所以我尝试使用imagecreatefromstring().
$imgx = imagecreatefromstring($testimg);
if ($imgx !== false) {
header('Content-Type: image/jpeg');
imagejpeg($imgx);
imagedestroy($imgx);
} else {
echo 'An error occurred.';
}
但由于以下警告,我从未达到保存任何东西的程度:
Warning: imagecreatefromstring(): Data is not in a recognized format in /etc.
当我回复$testimg时,我得到:
/9j/4AAQSkZJRgABAQAAAQABAAD ...Many number and characters.. Ggm2JUsEvfqnxAhGFDP/9k=
我该怎么做才能使createimagefromstring工作?我是否必须修改$testimg字符串?谢谢你的关注.
解决方法:
方法imagecreatefromstring不采用base_64编码的字符串.试试这个:
$imgx = imagecreatefromstring($img); // Contents of $iresponse['body']
您可以在文档页面的最顶层注释中看到这一点(上面链接):
$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
. 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
. 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
. '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data = base64_decode($data);
$im = imagecreatefromstring($data);
标签:php
来源: https://codeday.me/bug/20190527/1164676.html