美文网首页小问题
iOS - 如何判断图片的类型

iOS - 如何判断图片的类型

作者: 梦蕊dream | 来源:发表于2018-06-04 15:40 被阅读327次

前言:图片有多种格式JPEG、PNG、JPG 等,iOS 如何判断图片的类型呢?

把图片转化为 NSData 类型,判断NSData的第一个字节即可。

SDWebImage 判断方法

uint8_t c;
    [data getBytes:&c length:1];
    switch (c) {
        case 0xFF:
            return SDImageFormatJPEG;
        case 0x89:
            return SDImageFormatPNG;
        case 0x47:
            return SDImageFormatGIF;
        case 0x49:
        case 0x4D:
            return SDImageFormatTIFF;
        case 0x52: {
            if (data.length >= 12) {
                //RIFF....WEBP
                NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, 12)] encoding:NSASCIIStringEncoding];
                if ([testString hasPrefix:@"RIFF"] && [testString hasSuffix:@"WEBP"]) {
                    return SDImageFormatWebP;
                }
            }
            break;
        }
        case 0x00: {
            if (data.length >= 12) {
                //....ftypheic ....ftypheix ....ftyphevc ....ftyphevx
                NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(4, 8)] encoding:NSASCIIStringEncoding];
                if ([testString isEqualToString:@"ftypheic"]
                    || [testString isEqualToString:@"ftypheix"]
                    || [testString isEqualToString:@"ftyphevc"]
                    || [testString isEqualToString:@"ftyphevx"]) {
                    return SDImageFormatHEIC;
                }
            }
            break;
        }
    }

手动查看方法

Xcode-->某图片-->右键 Open As -->Hex

Open As-Hex

查看结果:


图片 Hex 结果

总结:可根据第一个字节来判断图片的类型,不同类型的图片内部有本质的区别,这就是为什么有时不识别改过后缀名的图片(譬如把 .jpg直接改成.png)。

相关文章

  • iOS - 如何判断图片的类型

    前言:图片有多种格式JPEG、PNG、JPG 等,iOS 如何判断图片的类型呢? 把图片转化为 NSData 类型...

  • iOS 如何判断图片类型

    很多时候我们需要知道服务器返回的图片是 .png 还是 .jpg 或者是 .git ,两种方式。1.获取扩展名, ...

  • iOS 判断图片的类型

    从网络获取的图片URL. 举例如下: 其实图片数据的第一个字节是固定的,一种类型的图片第一个字节就是它的标识, 通...

  • iOS-判断图片类型

    说的简单一点就是,当文件都使用二进制流作为传输时,需要制定一套规范,用来区分该文件到底是什么类型的。 文件头有很多...

  • iOS判断UIImage图片类型

    + (NSString *)typeForImageData:(NSData *)data{ uint8_t...

  • IOS判断图片类型的方法

    IOS判断图片类型的方法 1.枚举定义图片类型 2.定义方法 3.方法实现 4.调用 5.输出 ImageType...

  • iOS11 HEIC图片上传到服务器自动旋转

    iOS11及以上 保存拍照的图片都会进行自动旋转处理,在上传图片时可通过图片格式判断获取图片类型,并重新调整方向,...

  • ios判断文件或图片的类型

    可以通过二进制的前2位的ascii码来进行判断。如下: // 255216 jpg; // 7173 gif; /...

  • 判断图片类型

  • 图片几种懒加载方式

    故问题拆分成两个: 如何判断图片出现在了当前视口 (即如何判断我们能够看到图片) 如何控制图片的加载 如何判断图片...

网友评论

    本文标题:iOS - 如何判断图片的类型

    本文链接:https://www.haomeiwen.com/subject/fuhysftx.html