首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过curl从url获取gif : gif松散动画

通过curl从url获取gif : gif松散动画
EN

Stack Overflow用户
提问于 2017-04-14 22:20:52
回答 1查看 630关注 0票数 0

我有一个从$url下载图像的函数。这是来自jpg,png和gif的作品,但是gif文件失去了动画(它变成了一个静态图片)

代码语言:javascript
复制
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在这里:

代码语言:javascript
复制
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动画吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-15 09:02:15

我已经解决了我的问题:我改变了:

代码语言:javascript
复制
$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);
}

至:

代码语言:javascript
复制
file_put_contents($linkToPut, $data);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43419963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档