今天这里要介绍的是lookup table(颜色查找表),简而言之就是通过将每一个原始的颜色进行转换之后成为一个新的颜色。

打一个比方,比如原始颜色是红色(r:255,g:0,b:0),进行转换后变为绿色(r:0,g:255,b:0),以后所有是红色的地方都会被自动转换为绿色。

而颜色查找表就是将所有的颜色进行一次(矩阵)转换,而很多的滤镜功能就是提供了这么一个转换的矩阵,在原始色彩的基础上进行颜色的转换。

引:作者:謝灰灰在找胡蘿蔔
链接:https://www.jianshu.com/p/b470a5b5a560
更多见:

Android+JNI+OpenGL开发自己的美图秀秀

Original Lookup Table

然而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相关的文件夹内,大家可以找一找。

转载于:https://www.cnblogs.com/Anita9002/p/8426711.html

聊下图片滤镜,手机上的,lookup table(颜色查找表相关推荐

  1. 苹果手机上input的button颜色变蓝变绿

    苹果手机input框颜色自动变成渐变色 苹果手机input框颜色变蓝 苹果手机input框颜色变绿 苹果手机让input框还原原始颜色 input[type=button], input[type=s ...

  2. iOS高仿微信、仪表盘、图片标注图片滤镜、高斯模糊、上拉加载、下拉刷新等源码

    iOS精选源码 Swift-图片画框标注 Swift版的上拉加载, 下拉刷新控件(一句话集成, 超级易用) iOS tabbar上的提示框 Swift图片浏览器,经过一年多维护,已基本稳定 图片滤镜 ...

  3. iOS高仿微信、仪表盘、图片标注图片滤镜、高斯模糊、上拉加载、下拉刷新等源码...

    iOS精选源码 Swift-图片画框标注 Swift版的上拉加载, 下拉刷新控件(一句话集成, 超级易用) iOS tabbar上的提示框 Swift图片浏览器,经过一年多维护,已基本稳定 图片滤镜 ...

  4. android wifi传图片,「教程」将Mac电脑上的照片无线传到安卓手机上

    还在寻找Mac苹果电脑与安卓手机如何无线互传照片的方法吗?今天就与小伙伴们分享一种最简单的方法,只需下载一款锤子开发的HandShaker免费软件即可. 1.首先我们需要先安装一款软件,目前比较好用的 ...

  5. 怎么调节手机的刷新率_二分钟科普:手机上的“高刷新率”

    上回粗略带过屏幕刷新率,这篇将会以更简单的叙述,介绍手机屏幕刷新率和插帧.本期关键词:屏幕刷新率.FPS.插帧正文不纠结这是谁带节奏,进步是必然的.屏幕刷新率(通常单位为Hz),是一个硬件固定数值.例 ...

  6. 按键手机怎么装java_怎样把USB键盘接到Android手机上

    我是Swype, SlideIT等类似这种高端Android输入键盘的脑残粉,不过今天我想谈论的是由各种触键组成的实体键盘.对,就是那种物理键盘--我们曾用过这些笨重的东西,在咔嗒咔嗒的声响中疯狂敲击 ...

  7. 手机上的python怎么运行,python在手机上怎么操作

    大家好,小编来为大家解答以下问题,python在手机上怎么操作,手机上的python怎么运行,现在让我们一起来看看吧! 1.手机浏览器运行python 手机浏览器运行python是因为手机浏览器和py ...

  8. 我发的文章是怎么到你手机上的?计算机网络基础(一)

    大家好,我是后来,我会分享我在学习和工作中遇到的点滴,希望有机会我的某篇文章能够对你有所帮助,所有的文章都会在公众号首发,欢迎大家关注我的公众号" 后来X大数据 ",感谢你的支持与 ...

  9. 如何摆脱Android手机上的Bloatware

    Manufacturers and carriers often load Android phones with their own apps. If you don't use them, the ...

最新文章

  1. 为什么获取crm服务器信息失败,为 Outlook 配置 Microsoft Dynamics CRM 客户端时出现 与 Microsoft Dynamics CRM 服务器通信时出现问题 错误...
  2. Update item to this version和Revert to this version区别
  3. 【php7扩展开发一】注册一个内部函数hello world
  4. 测试Rockey 4 Smart加密锁的C语言代码
  5. FreeTreeView一个可添加、删除、修改的无限极树形结构
  6. springcloud配置动态更新
  7. 淘宝TFS文件系统配置
  8. [Java] 蓝桥杯PREV-8 历届试题 买不到的数目
  9. IDEA如何导入git仓库的分支代码
  10. 5.20 考试 20 未完
  11. 三星S4 GT-I9500 Google服务包及刷机教程
  12. xmapp phpstorm xdebug安装
  13. 华为qq邮箱服务器密码忘了,华为手机qq邮箱无法登录电子邮件鉴权失败的解决办法...
  14. 常见的日期计算问题(模板)
  15. 设计高效的交叉功率因数校正方案
  16. pythonplc曲线_启蒙篇-立志做PLC圈子里的IT大拿 | 利用VB编写程序读取PLC数据
  17. 服务进程无法连接到服务控制器上_魔兽世界 无法连接服务 暴雪游戏agent进入睡眠模式。。。。...
  18. web安全之信息刺探防范(下)
  19. NCR(numeric character reference)字符转换成真实字符
  20. Android VideoView没有画面

热门文章

  1. php孙晓冬作品,画家孙晓东 卢禹舜—中国特邀书画名家作品展
  2. 剑指Offer三天挑战赛03~15
  3. 阿里云部署SpringBoot项目
  4. Matlab批量转换dicom,基于Matlab的批量转换DICOM格式CT序列图像的实现
  5. 【问】无法连接,用户‘sa’登陆失败
  6. 用友软件T3版本不同的开账时间,期初余额应该如何录入?
  7. python实现二分查找_数据结构和算法:Python实现二分查找(Binary_search)
  8. java 去除警告_Java——警告消除
  9. Docker之网络模式和数据卷
  10. 无线专题 wifi、AP、mac、phy、MII 、Ethernet Switch相关概念