SwiftUI图像App开发之载入图片、显示图片、处理图片

时间:2024-04-05 08:30:35

本文价值与收获

看完本文后,您将能够作出下面的界面

SwiftUI图像App开发之载入图片、显示图片、处理图片
Jietu20200521-214942.gif
SwiftUI图像App开发之载入图片、显示图片、处理图片
Jietu20200521-214942.gif

基础知识

#Core Image 图像处理组件

Core Image核心图像是一种图像处理和分析技术,旨在为静止和视频图像提供近乎实时的处理。它使用 GPU 或 CPU 渲染路径。对来自CoreGraphics核心图形、Core Video核心视频和Image I/O 框架的图像数据类型进行操作。Core Image通过提供易于使用的应用程序编程接口 (API) 来隐藏低级图形处理的详细信息。您无需了解 OpenGL、OpenGL ES 或 Metal 的详细信息即可利用 GPU 的强大功能,也无需了解有关大*调度 (GCD) 的任何信息,即可获得多核处理的好处。

SwiftUI图像App开发之载入图片、显示图片、处理图片
image.png

Core Image框架提供功能:

  • 访问内置的图像处理滤镜
  • 特征检测能力
  • 支持自动图像增强
  • 将多个滤镜链接在一起以创建自定义效果的能力
  • 支持创建在GPU上运行的自定义过滤器
  • 基于反馈的图像处理功能

Core Image 三大组件

  • CIContext。CoreImage的所有处理都在 CIContext 中完成。这有点像核心图形或 OpenGL 上下文。
  • CIImage。此类保存图像数据。它可以从 UIImage、图像文件或像素数据创建。
  • CIFilter。筛选器类具有定义它表示的特定筛选器的属性的字典。过滤器的示例包括

Core Image 使用流程

每次要将CIFilter应用于图像时,都需要做四件事:

  • 1、创建一个CIImage对象。
    CIImage具有以下初始化方法。大多数情况下,您很可能会使用imageWithURL。

2、 创建一个CIContext。
CIContext可以基于CPU或GPU。 CIContext可以重复使用,因此您不必一遍又一遍地创建它,但是在输出CIImage对象时始终需要一个。
3、 创建一个CIFilter。创建过滤器时,您需要在其上配置许多属性,具体取决于您使用的过滤器。
4、 获取过滤器输出。过滤器为您提供了一个输出图像作为CIImage –您可以使用CIContext将其转换为UIImage。

代码含详细注释

1、图片处理代码