Swift - 使用CGBlendMode改变UIImage颜色
2015-09-28 14:12
691 查看
类似于PS,Swift中也可对图片UIImage进行图层混合(blending),而且提供了相当丰富的混合模式(blendMode)。本文先介绍使用其中的kCGBlendModeDestinationIn实现图片颜色的修改。
1,扩展UIImage,添加着色方法
首先为便于blending,我们扩展系统UIImage类,给其增加tint方法,方法内部即为相关的图层混合操作。
2,改变图片的颜色
有时我们的App需要能切换不同的主题和场景,希望图片能动态的改变颜色以配合对应场景的色调。虽然我们可以根据不同主题事先创建不同颜色的图片供调用,但既然用的图片素材都一样,还一个个转换显得太麻烦,而且不便于维护。使用blendMode变可以满足这个需求。
(1)效果图如下
可以看到最上面的一个是原图,下面三个是通过代码动态的改变颜色(透明度什么的都很好的保存了)
(2)代码如下
1,扩展UIImage,添加着色方法
首先为便于blending,我们扩展系统UIImage类,给其增加tint方法,方法内部即为相关的图层混合操作。
有时我们的App需要能切换不同的主题和场景,希望图片能动态的改变颜色以配合对应场景的色调。虽然我们可以根据不同主题事先创建不同颜色的图片供调用,但既然用的图片素材都一样,还一个个转换显得太麻烦,而且不便于维护。使用blendMode变可以满足这个需求。
(1)效果图如下
可以看到最上面的一个是原图,下面三个是通过代码动态的改变颜色(透明度什么的都很好的保存了)
(2)代码如下
相关文章推荐
- Swift - final关键字的介绍,以及使用场景
- 《从零开始学Swift》学习笔记(Day 17)——Swift中数组集合
- Swift - 单例模式的实现
- Swift - 正则表达式的使用(附用户名、邮箱、URL等常用格式验证)
- Swift - String与NSString的区别,以及各自的使用场景
- Swift - 使用UISearchController实现带搜索栏的表格
- Swift 2.0学习笔记(Day 18)——有几个分支语句?
- Swift中String与NSDate的互相转换
- Swift - 设置应用程序图标的提醒个数(右上角小红圈)
- Swift - AppDelegate.swift类中默认方法的介绍
- Swift - iOS应用的国际化与本地化
- Swift - 实现拨打电话
- Swift - 邮件发送功能的实现
- Swift - 短信发送功能的实现
- Swift - 添加、修改、删除通讯录联系人
- Swift - 访问通讯录联系人(使用纯代码实现)
- Swift - 访问通讯录联系人(使用系统提供的通讯录交互界面)
- Swift中闭包(closure)的使用
- Swift - 使用MapKit显示地图,并在地图上做标记
- Swift - 经纬度位置坐标与真实地理位置相互转化