1

我的应用程序允许用户选择或拍照,然后在顶部添加其他对象或文本并旋转/调整它们的大小。

为了保存,我只是截取了 iPhone 屏幕的屏幕截图,因为经过数小时的尝试,我无法弄清楚如何保存原始图像,并将添加的对象放置在正确的位置,并进行正确的旋转/调整大小/etc...(如果有人知道如何做到这一点的好例子/教程,那将非常有帮助!)

我有一个大小为 320x366 的 UIView。当用户选择图像时,我将其加载到 UIView 中,并调整其大小以适合其纵横比。当用户完成在他的图像上添加/编辑对象时,他可以保存它。

-(UIImage *)createMergedImage
{
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(contentView.frame.size.width, contentView.frame.size.height), NO, 0.0f);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextClearRect(context, CGRectMake(0, 0, contentView.frame.size.width,contentView.frame.size.height));
//contentView is the 320x366 view with all the images
    [contentView.layer renderInContext:context];
    UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return screenShot;
} 

这就是我用来将 UIView 保存为图片的代码。以正确的缩小纵横比拟合图像,顶部/底部或左侧/右侧有透明边框。

现在它正在保存并且可以正常工作,当我打开图像时,这正是我所期望的。问题是当我查看预览图像时,它会在图片的透明部分显示其他图像(我以前在我的 iPhone 上看到的)。正如您在下图中看到的那样。 图 1

当我进入相机胶卷时,透明部分看起来是黑色的(就像它应该的那样),如第二张图片所示。 图 2

此外,当我滚动浏览我的相机胶卷时,当我到达我的应用程序保存的图像时,我会在透明区域中看到那些额外的随机图像 0-1 秒,然后它就会消失并变黑(留下正确的图像应该是这样)。

我希望有人以前见过这样的事情并且知道如何解决它。

谢谢!

4

0 回答 0