在我的视图控制器中,我有一个imageview,下面有一个textview和一个背景图片?
我希望将所有这些捕获为图像,然后将其发送到相机胶卷
如果有办法,你怎么做?
答案 0 :(得分:1)
Igor的答案是正确的,但renderInContext非常慢。将其替换为更现代的(iOS 7 +)API:
[view drawViewHierarchyInRect:[[UIScreen mainScreen] bounds] afterScreenUpdates:NO];
在我的测试中,该方法的速度提高了50%以上。
答案 1 :(得分:1)
您的所有图像和文字视图放入不同的UIView并为此视图设置插座&然后在视图控制器中编写此代码..
- (UIImage *) screenshot {
UIGraphicsBeginImageContextWithOptions(self.saveview.bounds.size, NO, 1.0f);
[self.saveview drawViewHierarchyInRect:self.saveview.bounds afterScreenUpdates:YES];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;}
将此保存视图替换为 UIView 名称。
使用此方法是..
UIImage *sourceImage=[self screenshot];
然后保存到您的相机胶卷..
UIImageWriteToSavedPhotosAlbum(sourceImage, nil, nil, nil);
希望这对你有帮助..
答案 2 :(得分:0)
#import <QuartzCore/QuartzCore.h>
- (void) imageWithView:(UIView *)view
{
UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil);
}
这段代码功能会根据你要传递的视图为你创建一个图像,例如你是否会给它自己。它将创建一个包含self.view上每个元素的图像,然后将它保存到相册,