iOS中的图片处理方案

关于iOS开发中,遇到了图像处理的相关问题。Apple提供了相关类库来支持图片处理,Core Image, Core Graphic,以及第三方类库GPUImage;

以下总结一下自己开发过程中遇到过的关于这三个类库相关的例子。


第一种:

Core Graphics是Apple基于Quartz 2D绘图引擎的绘图API。

1.涂鸦和折线图绘制。

在实现涂鸦和绘制折线图时,需要重写drawrect方法,其实这个时候已经接触过了Core Graphics.在-drawRect:函数中,可以直接调用UIGraphicsGetCurrentContext()来使用context (CGContextRef)。系统被设置为你可以直接在视图上绘制被渲染的图像。

iOS中的图片处理方案_第1张图片
iOS中的图片处理方案_第2张图片

2.在给图片做圆角处理或者拉伸压缩图片时,在-drawRect:函数外,通常没有图形context可用。可以通过CGContextCreate()创建,或者你可以使用UIGraphicsBeginImageContext()和UIGraphicsGetCurrentContext()抓取创建的context。

图片圆角处理:

iOS中的图片处理方案_第3张图片

拉伸图片:

iOS中的图片处理方案_第4张图片

3.给图片加水印,处理图片色调等。

iOS中的图片处理方案_第5张图片



第二种:

Core Image+Core Graphic 

是Apple的图像处理的解决方案。它避免了所有底层的像素操作方法,转而使用高级别的滤镜替代了它们。

Core Image最好的部分在于它对比操作原始像素或Core Graphics有着极好的性能。这个库使用CPU和GPU混合处理提供接近实时的性能。

1.生成二维码

iOS中的图片处理方案_第6张图片

2.调色加水印

iOS中的图片处理方案_第7张图片

第三种:GPUImage

GPUImage是一个活跃的iOS上基于GPU的图像处理库。其隐藏了在iOS中所有需要使用OpenGL ES的复杂的代码,并用极其简单的接口以很快的速度处理图像。GPUImage的性能甚至在很多时候击败了Core Image,但是Core Image仍然在很多函数中有优势。

iOS中的图片处理方案_第8张图片



你可能感兴趣的:(iOS中的图片处理方案)