当我组合两个UIImage时(使用drawinrect :)它们都是相同的alpha,即使一个应该小于1.0。如何更改特定UIImage的alpha值?
答案 0 :(得分:1)
您无法更改UIImage的alpha值。您可以使用alpha绘制它到新的上下文并从中获取新图像。或者你可以提取CGImage,然后提取数据,然后调整alpha字节,然后从数据创建一个新的CGImage和从CGImage创建一个新的UIImage。
但在这种情况下,只需使用drawInRect:blendMode:alpha:
代替drawInRect:
。
答案 1 :(得分:0)
如果在UIImageView中显示UIImage,您可以在UIImageView上设置alpha属性。
答案 2 :(得分:0)
这是UIImage类别。
用法>>
UIImage * imgNew = [imgOld cloneWithAlpha:.3];
代码>>
- (UIImage *)cloneWithAlpha:(CGFloat) alpha {
UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0f);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGRect area = CGRectMake(0, 0, self.size.width, self.size.height);
CGContextScaleCTM(ctx, 1, -1);
CGContextTranslateCTM(ctx, 0, -area.size.height);
CGContextSetBlendMode(ctx, kCGBlendModeMultiply);
CGContextSetAlpha(ctx, alpha);
CGContextDrawImage(ctx, area, self.CGImage);
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
参考>> How to set the opacity/alpha of a UIImage?