文档章节

这是一个UIImage集合类,可以很方便的对图片的染料(着色),增加亮度(闪电)和降低亮度(黑)和其他扩展的功能模块。

kingly09
 kingly09
发布于 2016/11/12 13:40
字数 277
阅读 13
收藏 0

这是一个UIImage集合类,可以很方便的对图片的染料(着色),增加亮度(闪电)和降低亮度(黑)和其他扩展的功能模块。

在swift下实现图片染色

import UIKit

extension UIImage {


    ///  Just change a colored color image, is to change the image TintColo
    ///
    /// - Parameter tintColor: Need to change the color of the color
    /// - Returns: Returns an image
    func imageWithTintColor (tintColor: UIColor? = nil, alpha: CGFloat) -> UIImage?  {

        let rect = CGRect(x: 0.0, y: 0.0, width: self.size.width, height: self.size.height)

        UIGraphicsBeginImageContextWithOptions(rect.size,false,self.scale)

        draw(in: rect)

        let ctx = UIGraphicsGetCurrentContext()

        ctx!.setFillColor((tintColor?.cgColor)!)
        
        ctx!.setAlpha(alpha);
        
        ctx?.setBlendMode(.sourceAtop)
        
        ctx!.fill(rect);
        
        let result = UIGraphicsGetImageFromCurrentImageContext()
        
        UIGraphicsEndImageContext()
        
        return result
    }
}


Usage To swift

override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.


        let gift01ImageView = UIImageView(image: UIImage(named: "ic-gift"))
        
        gift01ImageView.frame =  CGRect(x: 50.0, y: 50.0, width: 48.0, height: 48.0)
        self.view!.addSubview(gift01ImageView)


        let gift02ImageView = UIImageView(image: UIImage(named: "ic-gift")?.imageWithTintColor(tintColor: UIColor.blue, alpha: 0.5))
     
        gift02ImageView.frame =  CGRect(x: 125.0, y: 50.0, width: 48.0, height: 48.0)
        self.view!.addSubview(gift02ImageView)

    }

gitHub Demo下载地址

© 著作权归作者所有

共有 人打赏支持
kingly09
粉丝 3
博文 14
码字总数 20300
作品 0
深圳
iOS工程师
私信 提问
UIImage-RTTint

UIImage-RTTint 是 UIImage 的分类,可以很方便给图片进行染色(Tinting)、增加亮度(lightening)以及降低亮度(darkening)。 使用方法: #import "UIImage+RTTint.h"...UIImage *image ...

红薯
2014/01/13
271
0
GPUImage是什么鬼

1.GPUImage介绍 GPUImage 是一个基于 GPU 图像和视频处理的开源 iOS 框架。由于使用 GPU 来处理图像和视频,所以速度非常快. 除了速度上的优势,GPUImage 还提供了很多很棒的图像处理滤镜,但...

hell03W
2016/06/13
80
0
彻底解决Linux下LED的背光闪烁

彻底解决Linux下LED的背光闪烁 树叶的BLOG2017-12-039 阅读 ThinkPadLinux 前言 因为家里的那台笔记本太重了,前段时间换了台Thinkpad X250方便外出携带使用。X250的屏幕分辨率是1080P,但不...

树叶的BLOG
2017/12/03
0
0
从0开始的OpenGL学习(二十九)

本文主要解答了3个问题,分别是: 1、什么是Gamma值? 2、为什么要进行Gamma校正? 3、如何进行Gamma修校正? 引言 到目前为止,我们渲染的场景看上去还不错。没错,是不错,但是,我们还想把...

闪电的蓝熊猫
2017/12/16
0
0
PS的混合模式

如果你要经常使用Photoshop,那么你需要了解Photoshop一个简单却不容易理解的特性——混合模式。在Photoshop众多酷炫功能中,这是个很容易被人忽略的功能,但是看完这篇文章之后,希望会引起...

NiceBlueChai
02/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Vavr User Guide中英对照版

Vavr User Guide(Vavr用户指南) Daniel Dietrich, Robert Winkler - Version 0.9.2,2018-10-01 0. Vavr Vavr是Java 8 的对象函数式扩展,目标是减少代码行数,提高代码质量,提供了持久化集合...

白石
29分钟前
1
0
Spark2.40 Streaming编程指南

Spark Streaming编程指南 概观 一个快速的例子 基本概念 链接 初始化StreamingContext 离散流(DStreams) 输入DStreams和Receivers DStreams的转换 DStreams的输出操作 DataFrame和SQL操作 ...

天天爬网
30分钟前
0
0
oozie 调度pyspark

http://www.learn4master.com/big-data/pyspark/run-pyspark-on-oozie

MPRO
33分钟前
1
0
转:文件系统read,write缓存,有点意思

当我们在linux系统下写程序的时候,经常会读文件或者写文件,既然要操作文件,就会用文件操作函数,其中涉及读写的不乏有read/write或者fread/fwrite,但是我们应该选择哪一种呢,少安毋躁,...

臧教授
39分钟前
1
0
通过示例学习Javascript闭包

译者按: 在上一篇博客,我们通过实现一个计数器,了解了如何使用闭包(Closure),这篇博客将提供一些代码示例,帮助大家理解闭包。 原文: JavaScript Closures for Dummies 译者: Fundebug 为...

Fundebug
39分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部