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


Posted in PHP onNovember 19, 2014

本文实例讲述了PHP判断一个gif图片是否为动态图片的方法。分享给大家供大家参考。具体方法如下:

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

例子如下:

/*

 * 判断图片是否为动态图片(动画)

 */

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, filesize($filename));

 fclose($fp);

 return strpos($filecontent,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 相关文章推荐
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
Dec 29 PHP
linux系统上支持php的 iconv()函数的方法
Oct 01 PHP
深入PHP购物车模块功能分析(函数讲解,附源码)
Jun 25 PHP
解析php下载远程图片函数 可伪造来路
Jun 25 PHP
php实现图形显示Ip地址的代码及注释
Jan 20 PHP
php 解压rar文件及zip文件的方法
May 05 PHP
mac下Apache + MySql + PHP搭建网站开发环境
Jun 02 PHP
php实现的DateDiff和DateAdd时间函数代码分享
Aug 16 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
Mar 13 PHP
php无限分类使用concat如何实现
Nov 05 PHP
CodeIgniter视图使用注意事项
Jan 20 PHP
PHP实现多级分类生成树的方法示例
Feb 07 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
Nov 19 #PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
Nov 19 #PHP
php图片处理函数获取类型及扩展名实例
Nov 19 #PHP
PHP图片处理之图片旋转和图片翻转实例
Nov 19 #PHP
基于递归实现的php树形菜单代码
Nov 19 #PHP
php常用的url处理函数总结
Nov 19 #PHP
PHP调用wsdl文件类型的接口代码分享
Nov 19 #PHP
You might like
浅析PHP的静态成员函数效率更高的原因
2014/06/13 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
详解Yii2高级版引入bootstrap.js的一个办法
2017/03/21 PHP
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
网页中的图片的处理方法与代码
2009/11/26 Javascript
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
jQuery入门介绍之基础知识
2015/01/13 Javascript
理解javascript定时器中的setTimeout与setInterval
2016/02/23 Javascript
jQuery中选择器的基础使用教程
2016/05/23 Javascript
js中遍历对象的属性和值的方法
2016/07/27 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
AngularJS中$apply方法和$watch方法用法总结
2016/12/13 Javascript
解决Angular.js中使用Swiper插件不能滑动的问题
2018/02/26 Javascript
JS中利用FileReader实现上传图片前本地预览功能
2018/03/02 Javascript
JS中的两种数据类型及实现引用类型的深拷贝的方法
2018/08/12 Javascript
React精髓!一篇全概括小结(急速)
2019/05/23 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
2019/09/27 Javascript
JS 数组基本用法入门示例解析
2020/01/16 Javascript
tracking.js实现前端人脸识别功能
2020/04/16 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
用python写的一个wordpress的采集程序
2016/02/27 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
用sqlalchemy构建Django连接池的实例
2019/08/29 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
房地产销售经理岗位职责
2014/01/01 职场文书
项目建议书怎么写
2014/05/15 职场文书
农民工预备党员思想汇报
2014/09/14 职场文书
工商局局长个人对照检查材料思想汇报
2014/09/23 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
孔庙导游词
2015/02/04 职场文书
2015年公务员工作总结
2015/04/24 职场文书
房贷工资证明范本
2015/06/12 职场文书
装修公司管理制度
2015/08/05 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书