iOS中的图片处理方案
关于iOS开发中,遇到了图像处理的相关问题。Apple提供了相关类库来支持图片处理,Core Image, Core Graphic,以及第三方类库GPUImage;
以下总结一下自己开发过程中遇到过的关于这三个类库相关的例子。
第一种:
Core Graphics是Apple基于Quartz 2D绘图引擎的绘图API。
1.涂鸦和折线图绘制。
在实现涂鸦和绘制折线图时,需要重写drawrect方法,其实这个时候已经接触过了Core Graphics.在-drawRect:函数中,可以直接调用UIGraphicsGetCurrentContext()来使用context (CGContextRef)。系统被设置为你可以直接在视图上绘制被渲染的图像。
2.在给图片做圆角处理或者拉伸压缩图片时,在-drawRect:函数外,通常没有图形context可用。可以通过CGContextCreate()创建,或者你可以使用UIGraphicsBeginImageContext()和UIGraphicsGetCurrentContext()抓取创建的context。
图片圆角处理:
拉伸图片:
3.给图片加水印,处理图片色调等。
第二种:
Core Image+Core Graphic
是Apple的图像处理的解决方案。它避免了所有底层的像素操作方法,转而使用高级别的滤镜替代了它们。
Core Image最好的部分在于它对比操作原始像素或Core Graphics有着极好的性能。这个库使用CPU和GPU混合处理提供接近实时的性能。
1.生成二维码
2.调色加水印
第三种:GPUImage
GPUImage是一个活跃的iOS上基于GPU的图像处理库。其隐藏了在iOS中所有需要使用OpenGL ES的复杂的代码,并用极其简单的接口以很快的速度处理图像。GPUImage的性能甚至在很多时候击败了Core Image,但是Core Image仍然在很多函数中有优势。