如何合并这两个图像(参见附图)。我正在使用以下代码。它适用于普通图像,不适用于3D变换图像。如何处理这个问题。我搜索过很多次仍然没有得到正确的结果。请帮我。提前谢谢。
UIImage *mergedImage;
UIGraphicsBeginImageContext(backgroundImageView.frame.size);
[backgroundImageView.layer renderInContext:UIGraphicsGetCurrentContext()]; //bacgroundImageView here
mergedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
答案 0 :(得分:0)
您可以创建一个CGImageRef
,其中包含要置于顶部的扭曲图像(该图像的背景为0%alpha),这样您就可以使用上面的代码混合图像。
所以你真正想要的是如何将3D变换应用于图像。更准确地说,正如您正在寻找" perspective"用你自己的话说,你正在研究如何将单应性变形为图像。
CoreImage programming guide指定CIPerspectiveTransform
是要走的路,遗憾的是,自iOS 5.1起,这在iOS上无法使用。
所以你有几个选择:
如果您只想显示结果混合而不是操纵它,您可以在彼此的顶部使用两个UIImageView
,一个包含使用巧妙设计的{{{ 1}}
如果您绝对需要混合图像,则需要使用其他框架,例如OpenCV(CATransform3D
是您正在寻找的功能)或OpenGL ES
答案 1 :(得分:0)
不幸的是,renderInContext:
只能展平2D变换。它无法展平应用于图层的3D变换。没有办法解决这个问题。