2012-10-08 33 views
10

我是iPhone的新鮮開發者。如何合併2個圖像而不使用set alpha?

我想合併兩張圖片並獲取一張圖片UIImageView未設置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; 
} 

在此先感謝。

回答

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

使用此功能

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

這裏x和y是要顯示第二圖像的placemnt

1

我只是面臨着同樣的問題,現在我得到了解決我的問題

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

試試這個,它的工作就像一個魅力對我來說,我希望你也能得到解決方案。

您可以像使用 -

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