2011-09-07 83 views
0

當我結合兩個UIImage(使用drawinrect :)他們都是相同的alpha,即使一個應該是小於1.0。我怎樣才能改變UIImage的alpha?如何設置UIImage的Alpha?

回答

1

您不能更改UIImage的Alpha。你可以用alpha來繪製一個新的上下文,並從中得到一個新的圖像。或者,您可以提取CGImage,然後提取數據,然後調整字節字節,然後從數據創建一個新的CGImage,並從CGImage創建一個新的UIImage。

但是在這種情況下,只需使用drawInRect:blendMode:alpha:而不是drawInRect:

+0

非常感謝您! – Aspyn

0

如果在UIImageView中顯示UIImage,則可以在UIImageView上設置alpha屬性。

0

這裏是UIImage類。

用法>>

的UIImage * imgNew = [imgOld cloneWithAlpha:0.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?