iOS 中利用图形上下文给 UIImage 设置透明度

在自定义控件的时候,需要给控件的背景图片设置透明度,但是 UI 只提供了不带透明度的图片,而给控件整体设置透明度又会影响其子控件的正常显示,这时候可以利用图形上下文给 Image 设置透明度,代码如下:

+ (UIImage*)imageByApplyingAlpha:(CGFloat)alpha  image:(UIImage*)image {

 UIGraphicsBeginImageContextWithOptions(image.size,NO,0.0f);
 CGContextRefctx =UIGraphicsGetCurrentContext();
 CGRectarea =CGRectMake(0,0, image.size.width, image.size.height);
 CGContextScaleCTM(ctx,1, -1);
 CGContextTranslateCTM(ctx,0, -area.size.height);
 CGContextSetBlendMode(ctx,kCGBlendModeMultiply);
 CGContextSetAlpha(ctx, alpha);
 CGContextDrawImage(ctx, area, image.CGImage);
 UIImage*newImage =UIGraphicsGetImageFromCurrentImageContext();
 UIGraphicsEndImageContext();
 return newImage;
}

希望对大家有所帮助。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容