0

重複の可能性:
透視画像をマージする方法 (3D 変換)?

3D Transform を変更した後、2 つの画像をマージするにはどうすればよいですか? 私は2つの画像を使用しています

(i) 背景画像は通常画像です。

(ii) 前景画像は 3D 変換を変更します。

次に、2 つの画像を結合します。しかし、画像をマージしていないので、以下のコードを使用しています。このコードは、3D 変換なしで正常に機能します。

UIGraphicsBeginImageContext(backgroundImageView.frame.size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
[imageView.layer renderInContext:ctx];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(newImage, nil, nil, nil);
return newImage;

いろいろ調べたのですが、3D変換された画像がレイヤーに対応していませんでした。

この機能を入手する方法。私は本当に私のアプリでこの機能を必要としています. アイデア、ソース コード、提案、アドバイス、いつでも歓迎します。私を助けてください。ここに画像の説明を入力

4

1 に答える 1

0

これを試して。

- (UIImage*)mergeImage:(UIImage*)first withImage:(UIImage*)second
{
 // get size of the first image
 CGImageRef firstImageRef = first.CGImage;
 CGFloat firstWidth = CGImageGetWidth(firstImageRef);
 CGFloat firstHeight = CGImageGetHeight(firstImageRef);

 // get size of the second image
 CGImageRef secondImageRef = second.CGImage;
 CGFloat secondWidth = CGImageGetWidth(secondImageRef);
 CGFloat secondHeight = CGImageGetHeight(secondImageRef);

 // build merged size
 CGSize mergedSize = CGSizeMake(MAX(firstWidth, secondWidth), MAX(firstHeight, secondHeight));

 // capture image context ref
 UIGraphicsBeginImageContext(mergedSize);

 //Draw images onto the context
 [first drawInRect:CGRectMake(0, 0, firstWidth, firstHeight)];
 [second drawInRect:CGRectMake(0, 0, secondWidth, secondHeight)]; 

 // assign context to new UIImage
 UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

 // end context
 UIGraphicsEndImageContext();

 return newImage;
}
于 2012-12-20T07:31:39.423 に答える