2012-10-08 12 views
10

Sono uno sviluppatore più fresco in iPhone.come unire 2 immagini senza usare set alpha?

Desidero unire due immagini e ottenere solo un'immagine nel UIImageView senza impostare alfa.

Questo è il mio codice. Questo codice funziona con alpha, ma voglio impostare senza 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; 
} 

Grazie in anticipo.

risposta

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 questa funzione

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

qui x ed y è il Posizion in cui si desidera mostrare seconda immagine

1

ho appena affrontato lo stesso problema, ora ho la soluzione per il mio 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(); 

Prova questo, il suo lavoro è un fascino per me, spero che otterrai anche la soluzione.

è possibile utilizzare come -

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