0

在此处输入图像描述

如何合并这两个图像(见附图)。我正在使用下面的代码。它适用于普通图像,不适用于 3D 变换图像。如何处理这个问题。我已经搜索了很多次仍然没有得到正确的结果。请帮我。提前致谢。

UIImage *mergedImage;
UIGraphicsBeginImageContext(backgroundImageView.frame.size);
[backgroundImageView.layer  renderInContext:UIGraphicsGetCurrentContext()]; //bacgroundImageView here
mergedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
4

2 回答 2

0

您可以创建一个CGImageRef包含要放在顶部的失真图像(该图像的背景为 0% alpha),这样您就可以使用上面的代码混合图像。

因此,您真正需要的是如何将 3D 变换应用于图像。更准确地说,当您在自己的话中寻找“透视”时,您正在寻找如何将单应性扭曲到图像。

CoreImage编程指南指定这CIPerspectiveTransform是要走的路,不幸的是,从 iOS 5.1 开始,这在 iOS 上不可用。

所以你有几个选择:

  • 如果您只想显示结果混合而不是对其进行操作,您可以使用两个UIImageView相互叠加的 s,其中一个包含使用巧妙设计的透视图像进行转换CATransform3D

  • 如果您绝对需要混合图像,则需要使用其他框架,例如OpenCVwarpPerspective()您正在寻找的功能)或 OpenGL ES

于 2012-09-17T10:24:13.697 回答
0

不幸的是,renderInContext:只能展平 2D 变换。它不能展平应用于图层的 3D 变换。没有办法解决这个问题。

于 2012-09-18T13:41:36.127 回答