1
私は外部のURLから画像を取得し、それをトリミングして保存しようとしていました。私はそれをコピーして保存することができますが、それは私を困らせる作物の部分です。私は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を単にimagecreateに変更し、代わりにPNGとして保存しました。今は完璧です。また、負荷によってサイズが小さくなります。 =) – Crimsonfox