1

我的应用程序允许用户在背景图像上合成图像(添加然后旋转、缩放、移动)并将最终编辑保存到相机胶卷。

主要编辑 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();
4

1 回答 1

0

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

在调用 renderInContext 之前简单地放大绘图上下文以实现所需的输出图像大小

CGContextScaleCTM(context, scaleFactor, scaleFactor);
于 2012-11-02T20:41:53.690 回答