Swift 如何从图片数据(Data)检测原图片类型?

在这里插入图片描述

功能需求

如果我们之前把图片对应的数据(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() 方法来将图片转换为数据。不过要注意的是,它们都是耗时方法,尽量放在后台执行:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/96146.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java核心知识】ThreadLocal相关知识

ThreadLocal 什么是ThreadLocal ThreadLoacal类可以为每个线程保存一份独有的变量,该变量对于每个线程都是独占的。实现原理为每个Thread类中包含一个ThreadHashMap,key为变量的对应的ThreadLocal对象,value为变量的值。 在日常使用中&…

百度搜索清理大量低质量网站

我是卢松松,点点上面的头像,欢迎关注我哦! 据部分站长爆料:百度大规模删低质量网站的百度资源站长平台权限,很多网站都被删除了百度站长资源平台后台权限,以前在百度后台添加的网站大量被删除!…

Anaconda常用命令及虚拟环境配置详细步骤

1、 pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple 使用上述语句进行安装速度快。 也可使用豆瓣源如下 pip install 库名版本号 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 2、 conda env list 查看所安装的环境 3、 conda list 查看…

Qt应用开发(基础篇)——消息对话框 QMessageBox

一、前言 QMessageBox类继承于QDialog,是一个模式对话框,常用于通知用户或向用户提出问题并接收答案。 对话框QDialog QMessageBox消息框主要由四部分组成,一个主要文本text,用于提醒用户注意某种情况;一个信息文本informativeTex…

学习振弦采集模块的开发基本原理

飞讯教学篇:学习振弦采集模块的开发基本原理 振弦采集模块是一种用于测量物体振动、形变、压力等物理量的电子设备。它通过测量物体的振动变化,可以得出物体在不同条件下的动态特性,对于工程设计、科学研究、医学检测等领域都有广泛应用。本…

css 左右宽固定,中间自适应——双飞翼布局

最近面试的时候遇到一个提问说,如何做到一个左右宽度固定,中间自适应的布局,我的答案不重要,重要的是不是面试官想听到的答案,这样问大概率他想听到的答案一定是双飞翼布局,所以今天就手敲一个双飞翼布局让…

React 如何获取上一次 state 的值

React 如何获取上一次 state 的值 一、用 ref 存储上一次的 state 类似 usePrevious function usePrevious(value) {const ref useRef();useEffect(() > {ref.current value;});return ref.current; }二、通过 setState 的入参改为函数获取

Android JNI系列详解之ndk-build工具的使用

一、Android项目中使用ndk-build工具编译库文件 之前介绍过CMake编译工具的使用,今天介绍一种ndk自带的编译工具ndk-build的使用。 ndk-build目前主要有两种配置使用方式: 如上图所示,第一种方式是Android.mkApplication.mkgradle的方式生成…

Python爬虫网络安全:优劣势和适用范围分析

目录 优势和劣势 优势: 劣势: 适用范围: 1. 网页数据收集和分析: 2. 漏洞扫描和安全评估: 3. 威胁情报收集: 4. 社交媒体监测和情感分析: 注意事项 1. 合规性和法律规定: …

Android中级——消息机制

消息机制 概念ThreadLocalMessageQueueLooperHandlerrunOnUiThread() 概念 MessageQueue:采用单链表的方法存储消息列表Looper:查询MessageQueue是否有新消息,有则处理,无则等待ThreadLocal:用于Handler获取当前线程的…

Qt各个版本下载及安装教程(离线和非离线安装)

Qt各个版本下载链接: Index of /archive/qthttps://download.qt.io/archive/qt/ 离线安装 ,离线安装很无脑,下一步下一步就可以。 我离线下载 半个小时把2G的exe下载下来了

百度垂类离线计算系统发展历程

作者 | 弘远君 导读 本文以百度垂类离线计算系统的演进方向为主线,详细描述搜索垂类离线计算系统发展过程中遇到的问题,以及对应的解决方案。架构演进过程中一直奉行“没有最好的架构,只有最合适的架构”的宗旨,面对不同阶段遇到的…