IOS开发--使用lookup table为图片添加滤镜
来源:互联网 发布:怎么查网络是否到期 编辑:程序博客网 时间:2024/05/18 00:46
原文链接:http://www.jianshu.com/p/b470a5b5a560#
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
在涉及到图片的应用中,基本上都会加入图片滤镜的相关功能。
IOS自身也自带了功能强大的滤镜相关的API,具体希望了解的朋友可以查询一下苹果的文档。
今天这里要介绍的是lookup table(颜色查找表),简而言之就是通过将每一个原始的颜色进行转换之后成为一个新的颜色。
打一个比方,比如原始颜色是红色(r:255,g:0,b:0),进行转换后变为绿色(r:0,g:255,b:0),以后所有是红色的地方都会被自动转换为绿色。
而颜色查找表就是将所有的颜色进行一次(矩阵)转换,而很多的滤镜功能就是提供了这么一个转换的矩阵,在原始色彩的基础上进行颜色的转换。
然而IOS自带的图像处理API中并没有提供颜色查找表相关的内容。即使如此,善解人意的GPUImage的大大们给我们提供了一个相关的接口,今天就来简单的介绍一下用法。
1 图片添加滤镜效果
资源:一张图片(随意),photoshop
a)在photoshop中载入原始图片
b)调整photoshop中的调整面板,对图像进行调整,并达到满意的效果。
c)在达到满意的效果之后,对original lookup table(原始颜色查找表)进行一次相同的调整操作
d)将调整后得到的lookup table另存为NewLookupTable.png
2 代码中引用lookup table
GPUImage是一个相当出名的第三方图像处理库,这里就不对这个库进行介绍了。
GPUImage中有一个专门针对lookup table进行处理的滤镜函数GPUImageLookupFilter,使用这个函数就可以直接对图片进行滤镜添加操作了。
//originalImg是你希望添加滤镜的原始图片
- (UIImage *)applyFIlter:(UIImage *)originalImg {
UIImage *inputImage =originalImg;
UIImage *outputImage = nil;
GPUImagePicture *stillImageSource = [[GPUImagePicture alloc] initWithImage:inputImage];
//添加滤镜
GPUImageLookupFilter *lookUpFilter = [[GPUImageLookupFilter alloc] init];
//导入之前保存的NewLookupTable.png文件
GPUImagePicture *lookupImg = [[GPUImagePicturealloc] initWithImage:[UIImageimageNamed: @“NewLookupTable.png”]];
[lookupImg addTarget:lookUpFilteratTextureLocation:1];
[stillImageSource addTarget:lookUpFilteratTextureLocation:0];
[lookUpFilter useNextFrameForImageCapture];
if([lookupImg processImageWithCompletionHandler:nil] && [stillImageSource processImageWithCompletionHandler:nil]) {
outputImage= [lookUpFilterimageFromCurrentFramebuffer];
}
return outputImage;
}
就这样滤镜就可以添加成功了,很简单把,哈哈。
对了哈,GPUImage这个库里面会有一张lookup table的图片的,在GPUImageLookupFilter相关的文件夹内,大家可以找一找。
- IOS开发--使用lookup table为图片添加滤镜
- IOS开发--使用lookup table为图片添加滤镜
- 使用GPUImage 的lookup table为图片添加滤镜
- python3使用pillow库为图片添加滤镜
- iOS 使用GPUImage为本地视频添加滤镜
- 滤镜-Color Lookup Table(ColorLUT)技术
- 03 GPUImage为图片添加滤镜
- IOS为图片添加手势的使用
- 安卓实现为图片添加滤镜功能
- 图片添加滤镜
- iOS GPUImage研究四:为视频文件添加滤镜
- iOS滤镜 图片处理
- 使用CIFilter 为照片添加各种滤镜效果
- CoreImage的使用(给图片添加滤镜)
- Lookup Table
- Simulink中lookup-Table的使用
- 为ffmpeg添加自定义滤镜
- 为ffmpeg添加自定义滤镜
- 请求转发和重定向
- 数字签名、数字证书、对称加密算法、非对称加密算法、单向加密(散列算法)
- ORACLE,SQLSERVER等数据库如何获取某张表中相同字段最新一条记录
- Oracle创建表空间、创建用户以及授权、查看权限
- thinking in Java 笔记 6
- IOS开发--使用lookup table为图片添加滤镜
- Windows程序运行原理(总结)
- scikit-learn 机器学习
- java随机数
- 【飞然教练】网络游戏怎么样赚钱?
- 去除tableView多余的分割线
- Struts2框架中HTTP Status 404 There is no Action mapped for namespace / and action name
- FreeBSD 安裝記錄
- ubuntu服务器添加用户实例