1
因此,我一直在尝试从外部URL获取图像,裁剪并保存。我可以复制并保存好,但这是令我困扰的作物部分。我无法弄清楚如何从CURL中获取图像资源(我对curl不太了解,这是其他人的卷曲资料)。来自URL的图像然后剪裁
我虽然是这样的:
$img = imagecreatefromstring($image);
$crop = imagecreatetruecolor(8,8);
imagecopy ($crop, $img, 0, 0, 8, 8, 8, 8);
但没有运气,节省了腐败PNG。下面是完整的代码:
$link = "urlhere";
$path = './mcimages/faces/';
$curl_handle=curl_init(urldecode($link));
curl_setopt($curl_handle, CURLOPT_NOBODY, true);
$result = curl_exec($curl_handle);
$retcode = false;
if($result !== false)
{
$status = curl_getinfo($curl_handle, CURLINFO_HTTP_CODE);
if($status == 200)
$retcode = true;
}
curl_close($curl_handle);
if($retcode)
{
$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL,urldecode($link));
curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
$image = curl_exec($curl_handle);
curl_close($curl_handle);
if($image !== false)
{
$img = imagecreatefromstring($image);
$crop = imagecreatetruecolor(8,8);
imagecopy ($crop, $img, 0, 0, 8, 8, 8, 8);
if(strpos($link,"/") !== false)
{
$name = explode("/",$link);
$total = count($name);
$handle = fopen($path.$name[$total-1],"w") or die("Could not create : ".$path.rand()."_".$name[$total-1]);
if($handle !== false)
{
fwrite($handle,$crop);
fclose($handle);
echo 'The file has been successfully saved !';
}
}
}
} else {
echo 'File not found !';
}
这样做。尽管imagecopy似乎试图通过平滑颜色来“修复”图像,就好像它正在调整大小,但我会如何阻止这种情况?# – Crimsonfox
嗯,必须从jpg-> PNG做一些事情。改变imagecreatetruecolor只是图像创建和保存为一个PNG,而现在它是完美的。负载的尺寸也较小。 =) – Crimsonfox