CGBlendMode

本文介绍了CGBlendMode的各种模式,如Normal、Multiply、Screen等,详细展示了不同模式下图形的混合效果,适用于图形编程和视觉设计中的图像处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

- (UIImage *) imageWithTintColor:(UIColor *)tintColor blendMode:(CGBlendMode)blendMode
{
    //We want to keep alpha, set opaque to NO; Use 0.0f for scale to use the scale factor of the device’s main screen.
    UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0f);
    [tintColor setFill];
    CGRect bounds = CGRectMake(0, 0, self.size.width, self.size.height);
    UIRectFill(bounds);

    //Draw the tinted image in context
    [self drawInRect:bounds blendMode:blendMode alpha:1.0f];

    if (blendMode != kCGBlendModeDestinationIn) {
        [self drawInRect:bounds blendMode:kCGBlendModeDestinationIn alpha:1.0f];
    }

    UIImage *tintedImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return tintedImage;
}

调用

self.ivStar.image = [[UIImage imageNamed:@"image"] imageWithTintColor:[UIColor orangeColor] blendMode:kCGBlendModePlusLighter];

原图
这里写图片描述

kCGBlendModeNormal
这里写图片描述

kCGBlendModeMultiply
这里写图片描述

kCGBlendModeScreen
这里写图片描述

kCGBlendModeOverlay
这里写图片描述

kCGBlendModeDarken
这里写图片描述

kCGBlendModeLighten
这里写图片描述

kCGBlendModeColorDodge
这里写图片描述

kCGBlendModeColorBurn
这里写图片描述

kCGBlendModeSoftLight
这里写图片描述

kCGBlendModeHardLight
这里写图片描述

kCGBlendModeDifference
这里写图片描述

kCGBlendModeExclusion
这里写图片描述

kCGBlendModeHue
这里写图片描述

kCGBlendModeSaturation
这里写图片描述

kCGBlendModeColor
这里写图片描述

kCGBlendModeLuminosity
这里写图片描述

kCGBlendModeClear
这里写图片描述

kCGBlendModeCopy
这里写图片描述

kCGBlendModeSourceIn
这里写图片描述

kCGBlendModeSourceOut
这里写图片描述

kCGBlendModeSourceAtop
这里写图片描述

kCGBlendModeDestinationOver
这里写图片描述

kCGBlendModeDestinationIn
这里写图片描述

kCGBlendModeDestinationOut
这里写图片描述

kCGBlendModeDestinationAtop
这里写图片描述

kCGBlendModeXOR
这里写图片描述

kCGBlendModePlusDarker
这里写图片描述

kCGBlendModePlusLighter
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值