如何设置UIImage的Alpha?

时间:2011-09-07 15:00:03

标签: iphone uiimage core-graphics opacity alpha

当我组合两个UIImage时(使用drawinrect :)它们都是相同的alpha,即使一个应该小于1.0。如何更改特定UIImage的alpha值?

3 个答案:

答案 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?