iOS 中利用图形上下文给 UIImage 设置透明度
2017-02-09 本文已影响105人
深度码农患者
在自定义控件的时候,需要给控件的背景图片设置透明度,但是 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;
}
希望对大家有所帮助。