我有一个从$url下载图像的函数。这是来自jpg,png和gif的作品,但是gif文件失去了动画(它变成了一个静态图片)
public function getAndPutContent($url, $linkToPut)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.111 Safari/537.36 Vivaldi/1.9.804.3');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
$img = imagecreatefromstring($data);
$ext = $this->getImageType($url);
if($ext === 'jpg' || $ext === 'jpeg')
{
imagejpeg($img, $linkToPut);
}
else if($ext === 'png')
{
imagepng($img, $linkToPut);
}
else if($ext === 'gif')
{
imagegif($img, $linkToPut);
}
}getImageType在这里:
public function getImageType($img)
{
$result = preg_match('#\.([a-zA-Z]{2,5})$#', $img, $extension);
if($result === 0)
{
$linkExt = 'jpg';
}
else
{
$linkExt = strtolower($extension[1]);
}
$trueExt = exif_imagetype($img);
if($trueExt === IMAGETYPE_JPEG)
{
$ext = 'jpeg';
}
else if($trueExt === IMAGETYPE_PNG)
{
$ext = 'png';
}
else if($trueExt === IMAGETYPE_GIF)
{
$ext = 'gif';
}
else
{
$ext = $linkExt;
}
return $ext;
}你能帮我保存一下gif动画吗?
发布于 2017-04-15 09:02:15
我已经解决了我的问题:我改变了:
$img = imagecreatefromstring($data);
$ext = $this->getImageType($url);
if($ext === 'jpg' || $ext === 'jpeg')
{
imagejpeg($img, $linkToPut);
}
else if($ext === 'png')
{
imagepng($img, $linkToPut);
}
else if($ext === 'gif')
{
imagegif($img, $linkToPut);
}至:
file_put_contents($linkToPut, $data);https://stackoverflow.com/questions/43419963
复制相似问题