功能需求
如果我们之前把图片对应的数据(Data)保持在内存或数据库中,那么怎么从 Data 对象检测出原来图片的类型呢?
如上图所示:我们将 11 张不同类型的图片转换为 Data 数据,然后从 Data 对象正确检测出了原图片类型。
目前,我们的代码可以检测出 jpeg(jpg), tiff, bmp, ico, icns, gif, png, webp, svg 等 9 种图片格式。
这是如何实现的呢?
其实,超乎寻常的简单!
Let‘s dive in!😉
功能分析
1. 从图片转 Data 谈起
图片的表示分以下 2 种情况:
- UIImage(或CGImage)对象
- 图片文件的路径
对于一般的 UIImage 对象,我们可以调用其对应的 pngData() 或 jpegData() 方法来将图片转换为数据。不过要注意的是,它们都是耗时方法,尽量放在后台执行: