加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP判断一个gif图片是否为动态图片的方法

发布时间:2020-12-13 02:11:11 所属栏目:PHP教程 来源:网络整理
导读:《:PHP判断一个gif图片是否为动态图片的方法》要点: 本文介绍了:PHP判断一个gif图片是否为动态图片的方法,希望对您有用。如果有疑问,可以联系我们。 本篇章节讲解PHP判断一个gif图片是否为动态图片的办法.供大家参考研究.具体办法如下: PHP实

《:PHP判断一个gif图片是否为动态图片的方法》要点:
本文介绍了:PHP判断一个gif图片是否为动态图片的方法,希望对您有用。如果有疑问,可以联系我们。

本篇章节讲解PHP判断一个gif图片是否为动态图片的办法.分享给大家供大家参考.具体办法如下:PHP实例

如何使用PHP来判断一个gif图片是否为动态图片(动画)?首先想到的是使用getimagesize()函数来看type值,发现都是gif,所以这个方法是不可行的.下面是作者在网上看到的一个函数,用来判断gif是否为动图的.贴出来和大家分享PHP实例

例子如下:
PHP实例

代码如下:
/*
?* 判断图片是否为动态图片(动画)
?*/
function isAnimatedGif($filename) {
?$fp=fopen($filename,'rb');
?$filecontent=fread($fp,filesize($filename));
?fclose($fp);
?return strpos($filecontent,chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0')===FALSE?0:1;
}

或者这样做:
用PHP判断一个gif图片是不是动画(多帧)
代码如下:
<?php
function IsAnimatedGif($filename)
{
?$fp = fopen($filename,'rb');
?$filecontent = fread($fp,chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0') === FALSE?0:1;
}
echo IsAnimatedGif("51windows.gif");
?>

例子2
gif动画是gif89格式的,发现文件开头是gif89.但是很多透明图片也是用的gif89格式,
GOOGLE到的:可以检查文件中是否包含:chr(0×21).chr(0xff).chr(0×0b).'NETSCAPE2.0'
chr(0×21).chr(0xff) 是gif图片中扩展功能段的标头,'NETSCAPE2.0'是扩展功能执行的程序名
程序代码如下:
代码如下:
<?php
function check($image){
$content= file_get_contents($image);
if(preg_match("/".chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0'."/",$content)){
return true;
}else{
return false;
}
}
if(check('/home/lyy/luoyinyou/2.gif')){
echo'真是动画';
}else{
echo'不是动画';
}
?>

测试发现,读取1024字节足够了,因为此时读取的数据流中正好包含了 chr(0×21).chr(0xff).chr(0×0b).'NETSCAPE2.0'

希望本文所述对大家的PHP程序设计有所赞助.PHP实例

欢迎参与《:PHP判断一个gif图片是否为动态图片的方法》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读