美文网首页iOS Developer
使图片显示成相应颜色的方法

使图片显示成相应颜色的方法

作者: Matt_Yuen | 来源:发表于2017-06-14 14:40 被阅读18次

把图片直接渲染成相应的颜色(此方法我是定义在UIImage的类别中的)

/**
 把UIImage对象渲染成相应的颜色

 @param color 颜色
 @return UIImage对象
 */
- (UIImage *)tintColor:(UIColor *)color
{
    UIGraphicsBeginImageContextWithOptions(self.size, NO, self.scale);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextTranslateCTM(context, 0, self.size.height);
    CGContextScaleCTM(context, 1.0, -1.0);
    CGContextSetBlendMode(context, kCGBlendModeNormal);
    CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);
    CGContextClipToMask(context, rect, self.CGImage);
    [color setFill];
    CGContextFillRect(context, rect);
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}

最开始,我是使用另外一种方式将图片显示成需求颜色的,如下:

//下面只是创建可以一个ImageView,在上面显示一张图片,需求是将图片显示成orange颜色
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
imageView.center = self.view.center;
//***需要设置imageView的'tintColor'属性为最终渲染颜色
imageView.tintColor = [UIColor orangeColor];
[self.view addSubview:imageView];
//对于image来说,也需要设置一个相应的属性才能最终显示成需求颜色
//即'imageWithRenderingMode:'方法
UIImage *image = [UIImage imageNamed:@"ic_contact_list_hint"];
image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
//设置imageView的'image'属性即可
imageView.image = image;

个人看来,还是直接用第一种方法来的更加直观一些,也不需要设置那么多的属性,比较方便,当然具体的区别和适用场景没有研究过,还请大家多指点。

相关文章

  • 使图片显示成相应颜色的方法

    把图片直接渲染成相应的颜色(此方法我是定义在UIImage的类别中的) 最开始,我是使用另外一种方式将图片显示成需...

  • Android Palette 介绍

    Palette是一个可以从图片(Bitmap)中提取颜色的帮助类,可以使UI更加美观,根据图片动态的显示相应的颜色...

  • Android 获取图片颜色

    需求:根据图片的颜色显示不同的背景颜色解决方法1.使用谷歌官方的api中提供的方法Palette来实现。缺点:不能...

  • #UIButton#背景图片的拉伸

    如果不采用相应技术对button的背景图片进行拉伸,则显示的效果就会失真,效果: iOS中有三种方法对图片进行拉伸...

  • 创建圆角图片

    在Android中有时候需要将图片显示成圆角图片,此处记录一种方法,运用ViewOutlineProvider这个...

  • Android Material Design 之 Palett

    简介 Palette 即调色板。从图片中提取颜色,然后赋给相应的视图,使界面看起来更加协调好看。 简单使用 首先添...

  • webview图片加载失败显示默认图片

    在Android项目中新闻显示需要使用图片的异步加载,并且在加载图片前和加载图片失败时显示默认图片。(1) 从相应...

  • java优雅的图片展示和下载

    在java web项目中,图片展示和下载的方式有很多,下面将化繁为简,使文件输出更优雅 下面的方法包括图片直接显示...

  • 自定义闪屏

    然后实现闪屏activity,显示闪屏图片,并延迟相应时间,结束显示再调用显示主activity即可。

  • APK优化(二)之Tint着色器-------------减少a

    一. Tint着色器 Tint能够实现图片变色,利用tint显示不同颜色的图片,原本需要多张相同图片不同颜色的情况...

网友评论

    本文标题:使图片显示成相应颜色的方法

    本文链接:https://www.haomeiwen.com/subject/zbgsqxtx.html