将imageView,图像和背景图像保存到相机胶卷?

时间:2014-12-17 22:21:53

标签: ios xcode image uiimageview uitextview

在我的视图控制器中,我有一个imageview,下面有一个textview和一个背景图片?

我希望将所有这些捕获为图像,然后将其发送到相机胶卷

如果有办法,你怎么做?

3 个答案:

答案 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上每个元素的图像,然后将它保存到相册,