2012-10-08 13 views
10

私はiPhoneのよりフレッシュな開発者です。設定アルファを使わずに2つの画像をマージする方法は?

私は2つのイメージをマージし、1つのイメージのみを取得します。UIImageViewセットアルファなし。

これは私のコードです。このコードはアルファ、 を使って動作していますが、セットアルファなしでセットしたいです。

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を使用すると、第2の画像を表示したい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]; 
関連する問題