动态图php打不开,PHP如何判断一个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图片是不是动画(多帧)
代码如下:
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'是扩展功能执行的程序名
程序代码如下:
代码如下:
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'
更多信息请查看IT技术专栏
动态图php打不开,PHP如何判断一个gif图片是否为动态图片相关推荐
- android开发动态图ae,AE教程:1分钟做出一个可爱鬼畜动图!
AE教程:1分钟做出一个可爱鬼畜动图! 4月 15, 2019 发表于: 视觉设计. 评论 Sponsor 在忙碌工作的同时,时不时也需要学习下新技能,今日刚学会一个小技巧,让我们可以快速做出一个鬼畜 ...
- 判断图有无环_【转】判断一个图是否有环 无向图 有向图
无向图: 法1: 如果存在回路,则必存在一个子图,是一个环路.环路中所有顶点的度>=2. n算法: 第一步:删除所有度<=1的顶点及相关的边,并将另外与这些边相关的其它顶点的度减一. 第二 ...
- AS下怎样录制APP操作生成Gif动态图
本文主要讲解Android下怎样录制APP操作生成gif动态图. Android App开发完成后,我们希望录制个gif做个展示.视频也可以展示,但是它没有gif轻量简单省流量.所以这篇文章就是讲解下 ...
- 超详细的Python matplotlib 绘制动态图
复习回顾 在matplotlib模块中我们前面学习绘制如折线.柱状.散点.直方图等静态图形.我们都知道在matplotlib模块主要有三层脚本层为用户提供快捷的绘制图形方法,美工层接收到脚本层的命令后 ...
- 基于pytorch实现图像分类——理解自动求导、计算图、静态图、动态图、pytorch入门
1. pytorch入门 什么是PYTORCH? 这是一个基于Python的科学计算软件包,针对两组受众: 替代NumPy以使用GPU的功能 提供最大灵活性和速度的深度学习研究平台 1.1 开发环境 ...
- gif动态图如何制作?
1.gif动态图的特点 gif动态图是一种无损的动画格式,它的优点是文件体积小.播放流畅,适合在网站上使用.制作gif动态图需要专业的软件SOOGIF动图. 制作gif动态图的步骤如下: 制作完成后, ...
- javacv开发详解之19:如何使用批量的多张图片制作apng动态图,再也不用担心不会制作动态图了
javacv实战专栏目录: JavaCV实战专栏文章目录(JavaCV速查手册) 前言 前面写过视频.桌面屏幕录制apng和gif动态图,虽然已经满足大部分情况,但是没考虑到现在很多动态图都是使用多张 ...
- 用 matplotlib 绘制 3D 时间序列动态图
时间序列动态图是显示时间演变的非常强大的工具,但 matplotlib 的默认动态图很简单,不太适合用于比较多个时间序列. 动态图被广泛使用:从解释神经网络如何训练,到显示合成时间序列统计数据或波动率 ...
- CSDN博客专用动态图小程序的推荐---ScreentoGIF教程
最近在很多博客上面都看到了有动态图的使用,觉得很有意思 也十分有用!这样的话,我们就不必再苦于无法做到演示的分享了!下面就做一个简单的教程分享给各位需要的小伙伴们! 第一步 :下载并安装 它是一款非常 ...
- 引入时间轴:动态图模型的共性与特征
动态图模型的共性特征 从这一篇博客开始,跟刘总来关注有向图模型,也就是贝叶斯网络模型中的一组典型案例--隐马尔可夫模型.卡尔曼滤波器和粒子滤波,这三个有向图模型都有一个统一的名字--动态图模型,它们拥 ...
最新文章
- SpringMVC @RequestBody 接收Json数组对象
- 如何在GitHub上重命名存储库?
- 【转】线性代数的几何意义
- 在centos6.5安装MariaDB(mysql)
- opencv 人脸检测
- VB100年底测试:McAfee金山遗憾出局 瑞星表现令人意外
- 直面Java第45期
- 全部关于测试–第1部分
- 深度学习之卷积神经网络 LeNet
- 倒序数(信息学奥赛一本通-T1160)
- java json删除指定元素_简洁而优雅,Python Tablib实现将数据导出为Excel, Json等N种格式...
- oracle暂停索引,Oracle索引被抑制情况
- mysql not in 的坑 -- null 值
- 富国银行眼下乱成一团糟:数据中心被烟雾笼罩,银行网站和应用软件宕机
- CSDN日报20170224——《程序员该用哪种姿势来理财》
- 使用GUID分区表(GPT)的笔记本硬盘做移动硬盘,windowsXP系统不识别的问题
- ps4玩android游戏,PS4更新7.0系统:手机秒变手柄,远程遥控畅玩游戏
- 计算机CAD技术在工程设计中的应用,研究在机械工程设计中CAD技术的运用
- gmt绘制中国省界,结合awk和RGB列表绘制中国地震台站分布
- 是什么软件_什么是企业微信软件
热门文章
- 安装ssd后不识别网卡_群晖E10M20-T1:你以为它是张网卡,其实它还带俩SSD
- 小知识--局域网内的文件共享
- python 客户端_Python客户端
- 毫秒和秒的换算工具_使用后戒不掉的文档搜索工具:Everything
- php pmt,关于光电倍增管(PMT)模块的选型与使用
- C语言打印杨辉三角(C笔记)
- matlab畸变程度计算,matlab 畸变校正代码
- 图像频域增强:高通滤波器
- mmlspark-102 : 简单的ML Pipelines
- 容器技术Docker K8s 43 Serverless Kubernetes(ASK)详解-ASK网络、存储、日志、监控管理