如何从下载的图像创建 PHP 图像对象?
How to create PHP image object from downloaded image?
所以我一直在使用这种方法来调整通过 PHP 中的表单上传的图像的大小:
list ($width, $height, $type, $w)=getimagesize($_FILES[$imageName]['tmp_name']);
$info = getimagesize($_FILES[$imageName]['tmp_name']);
效果很好 - 允许调整大小并转换为 png。
现在我需要做同样的事情 - 但对于下载的图像,例如给定在线图像的 url,例如 http://colorvisiontesting.com/images/plate%20with%205.jpg
。
从外观上看,这可以用 CURL
完成,但我不太清楚如何从中创建图像对象。这是我目前所拥有的:
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($c, CURLOPT_URL, $imageURL);
$curlImage = curl_exec($c);
$err = curl_getinfo($c,CURLINFO_HTTP_CODE);
curl_close($c);
list ($width, $height, $type, $w)=getimagesize($curlImage);
$info = getimagesize($curlImage);
但这在 getimagesize
处失败了 - 我不知道这里的正确方法是什么。有什么想法吗?
getimagesize
函数适用于文件名(本地或远程),但不适用于表示图像内容的字符串。
您可以:
- 将该内容保存到本地文件(例如使用
file_put_contents
)
- 在远程文件上使用
getimagesize
函数(应该可以)。
- 使用
getimagesizefromstring
(与 getimagesize
相同,但适用于数据而不是文件名)
- 使用
imagecreatefromstring
(如果您想将 stream/data 转换为图像 (gd) 资源,然后使用 imagesx
和 imagesy
资源。
所以我一直在使用这种方法来调整通过 PHP 中的表单上传的图像的大小:
list ($width, $height, $type, $w)=getimagesize($_FILES[$imageName]['tmp_name']);
$info = getimagesize($_FILES[$imageName]['tmp_name']);
效果很好 - 允许调整大小并转换为 png。
现在我需要做同样的事情 - 但对于下载的图像,例如给定在线图像的 url,例如 http://colorvisiontesting.com/images/plate%20with%205.jpg
。
从外观上看,这可以用 CURL
完成,但我不太清楚如何从中创建图像对象。这是我目前所拥有的:
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($c, CURLOPT_URL, $imageURL);
$curlImage = curl_exec($c);
$err = curl_getinfo($c,CURLINFO_HTTP_CODE);
curl_close($c);
list ($width, $height, $type, $w)=getimagesize($curlImage);
$info = getimagesize($curlImage);
但这在 getimagesize
处失败了 - 我不知道这里的正确方法是什么。有什么想法吗?
getimagesize
函数适用于文件名(本地或远程),但不适用于表示图像内容的字符串。
您可以:
- 将该内容保存到本地文件(例如使用
file_put_contents
) - 在远程文件上使用
getimagesize
函数(应该可以)。 - 使用
getimagesizefromstring
(与getimagesize
相同,但适用于数据而不是文件名) - 使用
imagecreatefromstring
(如果您想将 stream/data 转换为图像 (gd) 资源,然后使用imagesx
和imagesy
资源。