2010-12-07 14 views
11

imageA (kullanıcıların iPhone kamerasından alınmıştır) ve imageB, saydam bir alçalı (örneğin) şeffaf bir alfa alanı olan bir görüntü var.İki UIImages'yi birleştirme

Yapmak istediğim, bu iki görüntünün birleştirilmesi, imageB'nin imageA üzerine yerleştirilmesi ve daha sonra bunları diğer çalışmalar için imageC olarak kaydetmektir.

Bunu yapmanın bir yolu var mı?

Alkış

şimdiye kadar

-(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; 
} 

oluşturmak istediğim gerçi o kodu (doğru görünüyorsa ben

+0

Aşk Bu sefer basitlik. –

cevap

3

burada yanlış yapıyorum bilmiyorum/göremiyorum bu var iş parçacığı güvenliği için oluşturulmuş bir CGBitmapContext kullanmasını öneriyoruz, ancak JPEG olması gereken imageB mu? JPEG'ler saydamlığı desteklemez, bu nedenle, harmanlamanın çalışması için gerçekten bir PNG olmalıdır. Retina destek için size kullanması gerektiğini

+0

bir png olmak anlamına geliyordu, fark yok. –

+0

ah bunu yapan kodun yeriydi - imageView.image değeri sıfırlandı. –

3

Not: UIGraphicsBeginImageContextWithOptions(size, YES, 0); // 0 means let iOS deal with scale for you

İlgili konular