2012-05-09 20 views
9

tengo 2 imágenes: la primera es la imagen personal del usuario, la segunda es un ícono (insignia).Agregar UIImage encima de otro UIImage

Quiero agregar el segundo uiimage (icono) en la esquina inferior izquierda de la primera uiimage (imagen del usuario) y guardarlos en una Uiimage nueva.

gracias

Respuesta

27

probar este método:

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

Usted puede utilizarlo por:

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

Cualquier idea de por qué el código tomaría cierta UIImages y solo acércate a ellos, esencialmente perdiendo el acto ¿tamaño real? Este código no funciona para nosotros ya que nuestras imágenes se amplían, incluso si solo pasamos la imagen de perfil sin una insignia. – Praxiteles

+0

me salvó el día. Desearía no tener que volver a esto y tener UIImageViews apilados uno encima del otro en lugar de usar este ayudante aunque –

2

Prueba esto:

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