2012-05-09 21 views
9

Ich habe 2 Bilder: erstens ist das persönliche Bild des Benutzers, der zweite ist ein Symbol (Abzeichen).Hinzufügen UIImage auf einem anderen UIImage

Ich möchte das zweite uiimage (Symbol) in der unteren linken Ecke des ersten uiimage (Benutzerbild) hinzufügen und sie in einem neuen Uiimage speichern.

dank

Antwort

27

versuchen, diese Methode:

-(UIImage *)drawImage:(UIImage*)profileImage withBadge:(UIImage *)badge 
{ 
    UIGraphicsBeginImageContextWithOptions(profileImage.size, NO, 0.0f); 
    [profileImage drawInRect:CGRectMake(0, 0, profileImage.size.width, profileImage.size.height)]; 
    [badge drawInRect:CGRectMake(0, profileImage.size.height - badge.size.height, badge.size.width, badge.size.height)]; 
    UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return resultImage; 
} 

Sie es durch verwenden können:

UIImage *myBadgedImage = [self drawImage:profileImage withBadge:badgeImage]; 
+0

eine Ahnung, warum der Code bestimmte würde UIImagements und nur hineinzoomen - im Wesentlichen verlieren die Tat Größe? Dieser Code funktioniert nicht für uns, da unsere Bilder vergrößert werden - auch wenn wir das Profilbild nur ohne Abzeichen weitergeben. – Praxiteles

+0

speicherte meinen Tag. Ich wünschte, ich hätte das nicht nötig, um UIImageViews übereinander zu stapeln, anstatt diesen Helfer zu benutzen –

2

Try this:

CGFloat scale = [self currentScale]; 
if (scale > 1.5) 
    UIGraphicsBeginImageContextWithOptions(view.frame.size, NO, scale); 
else 
    UIGraphicsBeginImageContext(view.frame.size); 

[image1 drawInRect:CGRectMake(0, 0, w1, h1)]; 
[image2 drawInRect:CGRectMake(0, 0, w2, h2)]; 

UIImage* screenshot = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext();