php判断GIF图片是否为动画的方法
2015-01-24信息快讯网
这篇文章主要介绍了php判断GIF图片是否为动画的方法,需要的朋友可以参考下
本文介绍了PHP判断GIF图片是动画的方法,具体步骤如下:
首先,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'不是动画'; } ?>
这段代码还是可以再优化的:
因为实际上 chr(0×21).chr(0xff).chr(0×0b).'NETSCAPE2.0' 只在文件头部出现,可以 echo 来看看 ,但不是最头部,是在头部的某一个位置,所以,严格来说需要读取一部分文件,但不用全部,这样可以加快速度和节省内存。
程序可改写如下:
function check_animation($image_file){ $fp = fopen($image_file, 'rb'); $image_head = fread($fp,1024); fclose($fp); return preg_match("/".chr(0x21).chr(0xff).chr(0x0b).'NETSCAPE2.0'."/",$image_head) ? true : false; }
测试发现,读取1024字节足够了,因为此时读取的数据流中正好包含了 chr(0×21).chr(0xff).chr(0×0b).'NETSCAPE2.0'
php实现微信公众平台账号自定义菜单类
php获取CSS文件中图片地址并下载到本地的方法
PHP间隔一段时间执行代码的方法
ThinkPHP采用原生query实现关联查询left join实例
php面象对象数据库操作类实例
PHP图片处理之图片背景、画布操作
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
PHP判断一个gif图片是否为动态图片的方法
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
php缩放gif和png图透明背景变成黑色的解决方法
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
PHP提示Cannot modify header information - headers already sent by解决方法
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
Yii调试SQL的常用方法
ThinkPHP3.2.2的插件控制器功能简述
PHP 只允许指定IP访问(允许*号通配符过滤IP)
php中出现空白页的原因及解决方法汇总
php之Smarty模板使用方法示例详解
高性能PHP框架Symfony2经典入门教程
php实现批量压缩图片文件大小的脚本
PHP远程采集图片详细教程
PHP使用GIFEncoder类处理gif图片实例
ThinkPHP模板IF标签用法详解
PHP使用GIFEncoder类生成gif动态滚动字幕
PHP使用GIFEncoder类生成的GIF动态图片验证码
PHP把JPEG图片转换成Progressive JPEG的方法
使用ThinkPHP+Uploadify实现图片上传功能
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
php 获取SWF动画截图示例代码