判断是否为gif/png图片的正确姿势
判断是否为gif/png图片的正确姿势
1.在能取到图片后缀的前提下
1
2
3
4
5
6
7
8
9
|
//假设这是一个网络获取的URL
NSString *path = @ "http://pic3.nipic.com/20090709/2893198_075124038_2.gif" ;
// 判断是否为gif
NSString *extensionName = path.pathExtension;
if ([extensionName.lowercaseString isEqualToString:@ "gif" ]) {
//是gif图片
} else {
//不是gif图片
}
|
2.不知道时.其实就是取出图片数据的第一个字节, 就可以判断出图片的真实类型那该怎么做呢如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
//通过图片Data数据第一个字节 来获取图片扩展名
- (NSString *)contentTypeForImageData:(NSData *)data {
uint8_t c;
[data getBytes:&c length:1];
switch (c) {
case 0xFF:
return @ "jpeg" ;
case 0x89:
return @ "png" ;
case 0x47:
return @ "gif" ;
case 0x49:
case 0x4D:
return @ "tiff" ;
case 0x52:
if ([data length] < 12) {
return nil;
}
NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, 12)] encoding:NSASCIIStringEncoding];
if ([testString hasPrefix:@ "RIFF" ] && [testString hasSuffix:@ "WEBP" ]) {
return @ "webp" ;
}
return nil;
}
return nil;
}
|
其实图片数据的第一个字节是固定的,一种类型的图片第一个字节就是它的标识, 我们来调用一下这个方法:
1
2
3
4
5
6
7
|
//假设这是一个网络获取的URL
NSString *path = @ "http://pic.rpgsky.net/images/2016/07/26/3508cde5f0d29243c7d2ecbd6b9a30f1.png" ;
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:path]];
//调用获取图片扩展名
NSString *string = [self contentTypeForImageData:data];
//输出结果为 png
NSLog(@ "%@" ,string);
|
转载于:https://www.cnblogs.com/shifu/p/5794575.html
判断是否为gif/png图片的正确姿势相关推荐
- 论Java selenium 上传文件,图片的正确姿势
参考一 [转载自YunMan](https://www.cnblogs.com/yunman/p/7112882.html?utm_source=itdadao&utm_medium=refe ...
- Delphi判断一个文件是不是JPG图片
Delphi判断一个文件是不是JPG图片文件 function IsJpegFile(FileName: string): Boolean; const RightBuf : array[0..3] ...
- python如何导入图片imread_OpenCV 使用imread()函数读取图片的六种正确姿势
经常看到有人在网上询问关于imread()函数读取图片失败的问题.今天心血来潮,经过实验,总结出imread()调用的四种正确姿势. 通常我要获取一张图片的绝对路径是这样做的:在图片上右键--属性-- ...
- imagesLoaded-检测图片是否正确加载的js插件
简要教程 imagesLoaded是一款用于检测页面中的图片是否被加载的js插件.imagesLoaded是非常有用的插件,当你的页面中某幅图片没有被加载时,默认会显示一个红叉或图片alt文本,ima ...
- java判断文件夹中的图片是否重复
java判断文件夹中的图片是否重复 直接上代码 package com.example.common; import java.io.File; import java.io.FileInputStr ...
- OpenCV实践之路——使用imread()函数读取图片的六种正确姿势
本文由@星沉阁冰不语出品,转载请注明作者和出处. 文章链接:http://blog.csdn.net/xingchenbingbuyu/article/details/51375078 微博:http ...
- HTML 网页图片地址正确但不显示
(1)html 网页图片地址正确但不显示的问题 https://blog.csdn.net/qq_34089503/article/details/85226002
- vue动图加载图片不能正确显示的解决方法
vue动图加载图片不能正确显示的解决方法 解决核心 代码 运行结果 上次解决过一次,没有记录,后来发现有小伙伴问我这个问题,我今天就顺手记录一下,具体的原因我这里就不详细说, 加载不出来简略的原因是v ...
- python imread函数_OpenCV 使用imread()函数读取图片的六种正确姿势
经常看到有人在网上询问关于imread()函数读取图片失败的问题.今天心血来潮,经过实验,总结出imread()调用的四种正确姿势. 通常我要获取一张图片的绝对路径是这样做的:在图片上右键--属性-- ...
最新文章
- 收藏!机器学习算法分类图谱及其优缺点综合分析
- koa2 mysql增删改查_react+koa2+mysql零门槛的全栈体验,附上完整项目分享
- 付费依赖专家有没有用?
- 已经了关联到svn的文件类型,如何添加到 ignore
- @Value 注入静态变量
- 带着问题了解Openstack Neutron安全组
- 修复 github 项目的语言属性
- 网络学习(六)Windows XP系统之ghost安装
- access数据库密码破解
- 点云深度学习:多一维看世界【VALSE Webinar】Panel实录
- 中兴微ZXIC方案MF782型4G随身WIFI开启ADB,开启锁频等功能
- 闲话虚拟仪器开发历史
- 3d打印光固化好还是热固化好_生物3D打印进展综述:从打印方法到生物医学应用...
- 脚本调试sh -x xx.sh、set -x
- 计算机拆机步骤图解,华硕x50拆机步骤图解【图文】
- 腾讯天美测开一面面经
- 【BZOJ4552】【TJOI2016HEOI2016】排序(线段树、二分)
- web 多屏互动显示方案
- vue里实现页面录音功能
- springboot审核功能怎么做_开发的微信小程序商城怎么利用分销功能做营销
热门文章
- 【计蒜客 - 蓝桥训练】修建公路(贪心,或运算,dp)
- 【POJ-3259】 Wormholes(判负环,spfa算法)
- (1).数据结构概述
- php 分页 url重写 分页问题,解决千古难题,wordpress分页URL问题,wordpress给分页加链接...
- C语言第六次作业指针,c语言第六次作业解析
- Linux学习:第五章-Linux用户和用户组管理
- 学姐百度实习面经(轻松拿offer)
- 《关于我的那些面经》滴滴Java岗(附答案)
- python基础技巧总结(二)
- C++基础学习(02)--(数据类型,变量类型,变量作用域,常量,修饰符类型)