在 UIImage 中转换 UIScrollView 的内容

Posted

技术标签:

【中文标题】在 UIImage 中转换 UIScrollView 的内容【英文标题】:Convert content of UIScrollView in UIImage 【发布时间】:2012-05-12 16:29:20 【问题描述】:

在我的应用程序中,用户可以将UIImageView 添加为我的UIScrollView 的子视图。当用户点击“保存”按钮时,我想将我的UIScrollView 的所有内容作为UIImage 保存到照片库中。

我一直在谷歌上寻找,但没有太多关于这个主题的内容。

编辑:下面的代码完成了这项工作

        CGRect rect = self.mainView.frame;
        [self.mainView setFrame:CGRectMake(0, 0, 824, self.mainView.contentSize.height)];
        UIGraphicsBeginImageContext(self.mainView.bounds.size);
        [self.mainView.layer renderInContext:UIGraphicsGetCurrentContext()];
        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        UIImageWriteToSavedPhotosAlbum(image , nil, nil, nil);
        [self.mainView setFrame:rect];

【问题讨论】:

【参考方案1】:

看来您需要截屏,您可以在完成操作时尝试此代码 -

UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData * data = UIImagePNGRepresentation(image);
[data writeToFile:@"myImage.png" atomically:YES];

【讨论】:

不要忘记在渲染前调整滚动视图的大小以适应内容,然后将其调整回原来的大小。 第二行出现此错误:Receiver type 'CALayer' for instance message is a forward declaration 添加这个 - #import 非常感谢 rishi 和 Leo Natan

以上是关于在 UIImage 中转换 UIScrollView 的内容的主要内容,如果未能解决你的问题,请参考以下文章

将UIImage转换为NSData并返回UIImage

在 UIImage 中转换 UIScrollView 的内容

将 CMSampleBuffer 转换为 UIImage

如何快速将 PFFile 转换为 UIImage?

将UIImage转换为数据URI

Iphone 将 IplImage 转换为 UIImage 图像变蓝