Итак, я пытался получить изображение с внешнего URL, обрезать его и затем сохранить. Я мог бы скопировать и сохранить это хорошо, но это часть урожая, которая беспокоит меня. Я не могу понять, как получить ресурс изображения из материала CURL (я плохо разбираюсь в curl, это чужой материал curl).
Я думал, что это было так:
$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 !';
}