-(UIImage *)updateImageWithTintColor:(UIColor*)color alpha:(CGFloat)alpha rect:(CGRect)rect
{
CGRect imageRect = CGRectMake(.0f, .0f, self.size.width, self.size.height);
// 启动图形上下文
UIGraphicsBeginImageContextWithOptions(imageRect.size, NO, self.scale);
// 获取图片上下文
CGContextRef contextRef = UIGraphicsGetCurrentContext();
// 利用drawInRect方法绘制图片到layer, 是通过拉伸原有图片
[self drawInRect:imageRect];
// 设置图形上下文的填充颜色
CGContextSetFillColorWithColor(contextRef, [color CGColor]);
// 设置图形上下文的透明度
CGContextSetAlpha(contextRef, alpha);
// 设置混合模式
CGContextSetBlendMode(contextRef, kCGBlendModeSourceAtop);
// 填充当前rect
CGContextFillRect(contextRef, rect);
// 根据位图上下文创建一个CGImage图片,并转换成UIImage
CGImageRef imageRef = CGBitmapContextCreateImage(contextRef);
UIImage *tintedImage = [UIImage imageWithCGImage:imageRef scale:self.scale orientation:self.imageOrientation];
// 释放 imageRef,否则内存泄漏
CGImageRelease(imageRef);
// 从堆栈的顶部移除图形上下文
UIGraphicsEndImageContext();
return tintedImage;
}
iOS根据颜色,透明度等生成图片
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 1. 要实现以下这些效果都非常简单 2. 废话不多说,先看看实现效果 3. 下面告诉你我为什么说实现这些效果非常简...
- 1. 要实现以下这些效果都非常简单 2. 废话不多说,先看看实现效果 3. 下面告诉你我为什么说实现这些效果非常简...
- 本节前言 今天给大家介绍的是关于Android各式各样的透明度,有需要的希望能够帮到你们 我们在学习本节课之前,先...