使Uiview完全保真保存



我的应用程序允许用户在背景图像的顶部复合图像(添加然后旋转,缩放,移动),然后将最终编辑保存到相机卷中。

主要的编辑viewController的视图是Uiview层次结构的顶部。在此视图中,我将其添加为一个子视图,其中包含来自相机卷或相机的图像的UIimageView。用户比添加其他字符(狗,猫等),每个字符都作为单独的Uiview实现,可以旋转,移动和缩放。

当用户完成编辑后,我想以最高分辨率的最高分辨率将整个场景保存到相机滚动 - iPhone4上的第1936x2592像素(UIImageView)的分辨率。

目前我使用下面的代码,但是这只会使我可以显示场景的显示分辨率,而不是记忆中图像的完整分辨率。有什么建议么?(我尝试将上下文大小(在下面的代码)中增加到完整的背景大小,但那里没有运气)

// create a CG context
UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, [UIScreen mainScreen].scale);
// render into the new context
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
// get the image out of the context
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

答案似乎很简单,并且在此线程中也解释了https://stackoverflow.com/a/111777322/207616

在调用RenderIncontext以实现所需的输出图像大小

之前,请简单地缩放图形上下文
CGContextScaleCTM(context, scaleFactor, scaleFactor);

最新更新