10

私はiPhoneの新しい開発者です。

UIImageView2つの画像をマージして、アルファを設定せずに1つの画像のみを取得したい。

これは私のコードです。このコードはアルファを使用して機能していますが、アルファを設定せずに設定したいと思います。

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

前もって感謝します。

4

3 に答える 3

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();
于 2012-10-08T12:22:48.380 に答える
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 番目の画像を表示する場所です

于 2012-10-09T10:46:56.043 に答える
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];
于 2012-10-10T06:45:00.957 に答える