2010-12-07 69 views
11

我有imageA(取自用戶iPhone相機)和imageB,一個帶有大量透明alpha空間的愚蠢邊界(例如)的圖像。合併兩個UIImages

我想要做的是合併這兩個圖像,將imageB放在imageA上,然後將它們保存爲imageC用於其他工作。

有沒有辦法做到這一點?

乾杯

我有這個迄今爲止

-(void)merge 
{ 
    CGSize size = CGSizeMake(320, 480); 
    UIGraphicsBeginImageContext(size); 

    CGPoint thumbPoint = CGPointMake(0,0); 
    UIImage *imageA = imageView.image; 
    [imageA drawAtPoint:thumbPoint]; 

    UIImage* starred = [UIImage imageNamed:@"imageB.png"]; 

    CGPoint starredPoint = CGPointMake(0, 0); 
    [starred drawAtPoint:starredPoint]; 

    UIImage *imageC = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    imageView.image = imageC; 
} 

我看不出/不知道我在做什麼錯在這裏

+0

愛就這一個簡單。 – 2012-08-21 11:11:01

回答

3

該代碼看起來是正確的(雖然我建議將其轉換爲使用爲線程安全創建的CGBitmapContext),但是imageB應該是JPEG? JPEG不支持透明度,因此,爲了使混合工作,它應該是一個PNG。

+0

被認爲是PNG,但沒有區別。 – 2010-12-07 08:30:41

3

注意,對於視網膜的支持,你應該使用:UIGraphicsBeginImageContextWithOptions(size, YES, 0); // 0 means let iOS deal with scale for you