2012-10-08 35 views
10

Soy un desarrollador más fresco en iPhone.cómo fusionar 2 imágenes sin utilizar el conjunto alfa?

Quiero unir dos imágenes y obtener una sola imagen en UIImageView sin set alfa.

Este es mi código. Este código funciona con alpha, pero quiero establecerlo sin set alpha.

MyCode: -

-(UIImage *)maskingImage:(UIImage *)image 
{ 

    CGSize sizeR = CGSizeMake(200, 220); 
    // UIImage *textureImage = [UIImage imageNamed:@"tt.png"]; 
    UIImage *textureImage =imgView2.image; 



    UIGraphicsBeginImageContextWithOptions(sizeR, YES, textureImage.scale); 
    [textureImage drawInRect:CGRectMake(0.0, 0.0, 200, 220)]; 

    UIImage *bottomImage = UIGraphicsGetImageFromCurrentImageContext(); 

    UIImage *upperImage = image; 


    CGSize newSize = sizeR ; 
    UIGraphicsBeginImageContext(newSize); 
    [bottomImage drawInRect:CGRectMake(0.0, 0.0, 200, 220)]; 
    [upperImage drawInRect:CGRectMake(0.0, 0.0, 200, 220) blendMode:kCGBlendModeNormal alpha:0.5]; 



    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return newImage; 
} 

Gracias de antemano.

Respuesta

1
UIGraphicsBeginImageContext(YOUR SIZE); 

//FIRST IMAGE 
[FIRST_IMAGE drawInRect:CGRectMake(0, 0, YOUR_SIZE_WIDTH/2, YOUR_SIZE_HEIGHT)]; 
//SECOND IMAGE 
[SECOND_IMAGE drawInRect:CGRectMake(YOUR_SIZE_WIDTH/2, 0, YOUR_SIZE_WIDTH/2, YOUR_SIZE_HEIGHT)]; 
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 

UIGraphicsEndImageContext(); 
1

uso de esta función

- (UIImage *) mergeImage: (UIImage *) imageA 
      withImage: (UIImage *) imageB 
      strength: (float) strength X:(float)x Y:(float)y{ 

UIGraphicsBeginImageContextWithOptions(CGSizeMake([imageA size].width,[imageA size].height), NO, 0.0); 

[imageA drawAtPoint: CGPointMake(0,0)]; 

[imageB drawAtPoint: CGPointMake(x,y) 
      blendMode: kCGBlendModeNormal // you can play with this 
       alpha: strength]; // 0 - 1 

UIImage *mergedImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
return mergedImage;} 

aquí x e y es la Ubicació en la que desea mostrar la segunda imagen

1

yo sólo se enfrentó al mismo problema, ahora tengo la solución para mi problema

CGSize newSize = CGSizeMake(320, 377); 
    UIGraphicsBeginImageContext(newSize); 

    // Use existing opacity as is 
    [ image1 drawInRect:CGRectMake(0,0,newSize.width,newSize.height)]; 
    // Apply supplied opacity 
    [image2 drawInRect:CGRectMake(0,0,newSize.width,newSize.height) blendMode:kCGBlendModeNormal alpha:0.8]; 

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

Prueba esto, funciona como un amuleto para mí, espero que también encuentres la solución.

puede utilizar como -

[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height) blendMode:kCGBlendModeNormal alpha:0.0]; 
Cuestiones relacionadas