iOS实现截屏并保存到相册
生活随笔
收集整理的這篇文章主要介紹了
iOS实现截屏并保存到相册
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
寫入相冊需要導入的頭文件:
#import <AssetsLibrary/AssetsLibrary.h>
...
1. iOS7之后的截屏方法,返回view
??? UIView *view = [self.view snapshotViewAfterScreenUpdates:YES]; ??? [self.view addSubview:view];
2. 返回UIImage的截屏方法
/**
?*? 截屏
?*
?*? @param view 需要截屏的視圖
?*
?*? @return 截屏后的圖片
?*/
- (UIImage *)captureImageInView:(UIView *)view
{
??? UIGraphicsBeginImageContextWithOptions(view.bounds.size, YES, 0);
??? [view.layer renderInContext:UIGraphicsGetCurrentContext()];
??? UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
??? UIGraphicsEndImageContext();
??? CGImageRef imageRef = viewImage.CGImage;
??? CGRect rect = view.bounds;? // 在view上的截圖的區(qū)域
??? CGImageRef imageRefRect =CGImageCreateWithImageInRect(imageRef, rect);
??? UIImage *sendImage = [[UIImage alloc] initWithCGImage:imageRefRect];
??? NSData *imageViewData = UIImagePNGRepresentation(sendImage);
???
??? NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
??? NSString *documentsDirectory = [paths objectAtIndex:0];
??? NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"result.png"];
??? NSLog(@"%@", savedImagePath);
??? [imageViewData writeToFile:savedImagePath atomically:YES];
??? CGImageRelease(imageRefRect);
???
??? return viewImage; }
3. 寫入相冊
// 寫入相冊
- (void)saveToLibratyWithImage:(UIImage *)image
{
??? ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
??? [library writeImageToSavedPhotosAlbum:[image CGImage]
????????????????????????????? orientation:(ALAssetOrientation)[image imageOrientation]
????????????????????????? completionBlock:^(NSURL *assetURL, NSError *error){ ? ? ? ? ? ? ? ? ? ? ? ?? ????????????????????????? }]; }
iOSTalk,分享iOS成長之路的點點滴滴。微信掃一掃即可關注。
...
1. iOS7之后的截屏方法,返回view
??? UIView *view = [self.view snapshotViewAfterScreenUpdates:YES]; ??? [self.view addSubview:view];
2. 返回UIImage的截屏方法
/**
?*? 截屏
?*
?*? @param view 需要截屏的視圖
?*
?*? @return 截屏后的圖片
?*/
- (UIImage *)captureImageInView:(UIView *)view
{
??? UIGraphicsBeginImageContextWithOptions(view.bounds.size, YES, 0);
??? [view.layer renderInContext:UIGraphicsGetCurrentContext()];
??? UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
??? UIGraphicsEndImageContext();
??? CGImageRef imageRef = viewImage.CGImage;
??? CGRect rect = view.bounds;? // 在view上的截圖的區(qū)域
??? CGImageRef imageRefRect =CGImageCreateWithImageInRect(imageRef, rect);
??? UIImage *sendImage = [[UIImage alloc] initWithCGImage:imageRefRect];
??? NSData *imageViewData = UIImagePNGRepresentation(sendImage);
???
??? NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
??? NSString *documentsDirectory = [paths objectAtIndex:0];
??? NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"result.png"];
??? NSLog(@"%@", savedImagePath);
??? [imageViewData writeToFile:savedImagePath atomically:YES];
??? CGImageRelease(imageRefRect);
???
??? return viewImage; }
3. 寫入相冊
// 寫入相冊
- (void)saveToLibratyWithImage:(UIImage *)image
{
??? ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
??? [library writeImageToSavedPhotosAlbum:[image CGImage]
????????????????????????????? orientation:(ALAssetOrientation)[image imageOrientation]
????????????????????????? completionBlock:^(NSURL *assetURL, NSError *error){ ? ? ? ? ? ? ? ? ? ? ? ?? ????????????????????????? }]; }
iOSTalk,分享iOS成長之路的點點滴滴。微信掃一掃即可關注。
總結
以上是生活随笔為你收集整理的iOS实现截屏并保存到相册的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 年薪计算器
- 下一篇: axios向springboot后台传递