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 相关文章推荐
php数组函数序列之array_splice() - 在数组任意位置插入元素
Nov 07 PHP
php提示无法加载或mcrypt没有找到 PHP 扩展 mbstring解决办法
Mar 27 PHP
php获取文件内容最后一行示例
Jan 09 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
Mar 12 PHP
腾讯CMEM的PHP扩展编译安装方法
Sep 25 PHP
php中的登陆login实例代码
Jun 20 PHP
php set_include_path函数设置 include_path 配置选项
Oct 30 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
如何解决PHP获取不到SESSION信息之一般情况
Oct 10 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
Feb 07 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 PHP
PHP Ajax跨域问题解决方案代码实例
Aug 01 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自定义函数之递归删除文件及目录
2010/08/08 PHP
php反射学习之依赖注入示例
2019/06/14 PHP
javascript 对象比较实现代码
2009/04/27 Javascript
JQuery团队打造的javascript单元测试工具QUnit介绍
2010/02/26 Javascript
JavaScript获取flash对象与网上的有所不同
2014/04/21 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
jQuery实现对象转为url参数的方法
2017/01/11 Javascript
javascript中BOM基础知识总结
2017/02/14 Javascript
nodejs操作mysql实现增删改查的实例
2017/05/28 NodeJs
jQuery用户头像裁剪插件cropbox.js使用详解
2017/06/07 jQuery
js移动端事件基础及常用事件库详解
2017/08/15 Javascript
用Axios Element实现全局的请求loading的方法
2018/03/15 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
react基本安装与测试示例
2020/04/27 Javascript
JS 5种遍历对象的方式
2020/06/16 Javascript
JavaScript 监听组合按键思路及代码实现
2020/07/28 Javascript
[00:12]DAC2018 no[o]ne亮相SOLO赛 他是否如他的id一样无人可挡?
2018/04/06 DOTA
零基础写python爬虫之打包生成exe文件
2014/11/06 Python
python leetcode 字符串相乘实例详解
2018/09/03 Python
python目标检测给图画框,bbox画到图上并保存案例
2020/03/10 Python
Python基于paramunittest模块实现excl参数化
2020/04/26 Python
在Keras中实现保存和加载权重及模型结构
2020/06/15 Python
python软件都是免费的吗
2020/06/18 Python
英国美术用品购物网站:Cass Art
2019/10/08 全球购物
德国户外装备、登山运动和攀岩商店:tapir store
2020/02/12 全球购物
大学生冰淇淋店商业计划书
2014/01/14 职场文书
社区端午节活动方案
2014/01/28 职场文书
求职信需要的五点内容
2014/02/01 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
餐饮服务食品安全责任书
2014/07/25 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
领导班子四风问题个人对照检查材料
2014/10/04 职场文书
2014年校务公开工作总结
2014/12/18 职场文书
解决jupyter notebook启动后没有token的坑
2021/04/24 Python
python通过新建环境安装tfx的问题
2022/05/20 Python