为UIImage添加滤镜效果
2016-07-01 16:18
615 查看
在iOS开发中,简单的为图片添加一些滤镜效果,我已经把添加的代码写在UIImage的类目中,下面是类目的实现:
.h文件
附上几张效果图:
.h文件
#import <UIKit/UIKit.h> @interface UIImage (UIImageCategory) - (UIImage *)addFilter:(NSString *)filter; @end.m文件
#import "UIImage+UIImageCategory.h" #import <CoreGraphics/CoreGraphics.h> @implementation UIImage (UIImageCategory) - (UIImage *)addFilter:(NSString *)filterName { //将UIImage转换成CIImage CIImage *ciImage = [[CIImage alloc] initWithImage:self]; //创建滤镜 CIFilter *filter = [CIFilter filterWithName:filterName keysAndValues:kCIInputImageKey, ciImage, nil]; //已有的值不变,其他的设为默认值 [filter setDefaults]; //获取绘制上下文 CIContext *context = [CIContext contextWithOptions:nil]; //渲染并输出CIImage CIImage *outputImage = [filter outputImage]; //创建CGImage句柄 CGImageRef cgImage = [context createCGImage:outputImage fromRect:[outputImage extent]]; //获取图片 UIImage *image = [UIImage imageWithCGImage:cgImage]; //释放CGImage句柄 CGImageRelease(cgImage); return image; } @end系统提供给我们的滤镜名字有很多,这里列出几个供大家使用:
[NSArray arrayWithObjects:@"original", @"ColorInvert", @"ColorMonochrome", @"ColorPosterize", @"FalseColor",
@"RGBToneCurve", @"MaximumComponent", @"MinimumComponent", @"PhotoEffectChrome", @"PhotoEffectMono", @"PhotoEffectNoir",
@"PhotoEffectProcess", @"PhotoEffectTonal", @"PhotoEffectTransfer", @"SepiaTone", nil];
附上几张效果图:
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 按右键另存图片只能存BMP
- photoshop去除图片上的水印
- upload上传单张图片
- 图片引发的溢出危机(图)
- C# WinForm控件对透明图片重叠时出现图片不透明的简单解决方法
- C#实现把彩色图片灰度化代码分享
- C#将图片和字节流互相转换并显示到页面上
- C#监控文件夹并自动给图片文件打水印的方法
- 纯CSS实现的当鼠标移上图片添加阴影效果代码
- 如何使用C#从word文档中提取图片
- C#实现打开画图的同时载入图片、最大化显示画图窗体的方法
- C#图片添加水印的实现代码
- 随鼠标移动的图片或文字特效代码