有的时候,获取图片信息类型为NSData,根据图片的种类不同【PS:比如gif, jpg, png等】来进行分类处理,解决方案:
enum ImageType {
case Jpeg
case Png
case Gif
case Tiff
case Unknown
var ext: String {
switch self {
case .Jpeg:
return "jpg"
case .Png:
return "png"
case .Gif:
return "gif"
case .Tiff:
return "tiff"
case .Unknown:
return ""
}
}
}
首先定义一个枚举类型,并在内容设置一个变量接受一个返回字符串。
func imageType(imgData : NSData) -> ImageType {
var c = [UInt32](count: 1, repeatedValue: 0)
let res : ImageType
imgData.getBytes(&c, length: 1)
switch (c[0]) {
case 0xFF:
res = .Jpeg
case 0x89:
res = .Png
case 0x47:
res = .Gif
case 0x49, 0x4D :
res = .Tiff
default:
res = .Unknown
}
return res
}
上面这个方法就是根据传进来的NSData数据,来返回一个ImageType的图片类型,我们在开发的时候,拿到这个类型之后可以进一步进行操作。