iOS 保存网络图片和视频到手机相册

1.保存网络图片到手机相册

- (void)toSaveImage:(Nsstring *)urlString {

NSURL *url = [NSURL URLWithString: urlString];

SDWebImageManager *manager = [SDWebImageManager sharedManager]; UIImage *img;

if ([manager diskImageExistsForURL:url]) {

img = [[manager imageCache] imageFromDiskCacheForKey:url.absoluteString];

} else { //从网络下载图片

NSData *data = [NSData dataWithContentsOfURL:url];

img = [UIImage imageWithData:data];

}

// 保存图片到相册中

UIImageWriteToSavedPhotosAlbum(img,self,@selector(image:didFinishSavingWithError:contextInfo:), nil );

}

//保存图片完成之后的回调

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {

// Was there an error?

if (error != NULL) {

// Show error message…

NSLog(@"图片保存失败");

} else { // Show message image successfully saved

NSLog(@"图片保存成功");

}

}

2.保存网络视频到手机相册

- (void)playerDownload:(NSString *)url{

NSLog(@"urlurlurlurl===%@",url);

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

NSString *fullPath = [NSString stringWithFormat:@"%@/%@", documentsDirectory, @"jaibaili.mp4"];

NSURL *urlNew = [NSURL URLWithString:url];

NSURLRequest *request = [NSURLRequest requestWithURL:urlNew];

NSURLSessionDownloadTask *task = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {

return [NSURL fileURLWithPath:fullPath];

} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {

NSLog(@"%@",response);

[self saveVideo:fullPath];

}];

[task resume];

}


//videoPath为视频下载到本地之后的本地路径

- (void)saveVideo:(NSString *)videoPath{

if (videoPath) {

NSURL *url = [NSURL URLWithString:videoPath];

BOOL compatible = UIVideoAtPathIsCompatibleWithSavedPhotosAlbum([url path]);

if (compatible) {

//保存相册核心代码

UISaveVideoAtPathToSavedPhotosAlbum([url path], self, @selector(savedPhotoImage:didFinishSavingWithError:contextInfo:), nil);

}

}

//保存视频完成之后的回调

- (void) savedPhotoImage:(UIImage*)image didFinishSavingWithError: (NSError *)error contextInfo: (void *)contextInfo {

if (error) {

NSLog(@"保存视频失败%@", error.localizedDescription);

[self showHintMiddle:@"视频保存失败"];

} else {

NSLog(@"保存视频成功");

}

}

你可能感兴趣的:(iOS 保存网络图片和视频到手机相册)