0

可能重复:
如何合并透视图像(3D 变换)?

更改 3D 变换后如何合并两个图像?我正在使用两个图像

(i) 背景图像是正常图像。

(ii) 前景图像改变 3D 变换。

现在我合并这两个图像。但没有合并图像,我正在使用下面的代码。此代码在没有 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 回答