保存图片



保存视频





- 保存图片
-(void)save{
NSURL *url = [NSURL URLWithString: self.imageUrlArr[self.currentIndex]];
SDWebImageManager *manager = [SDWebImageManager sharedManager];
__block UIImage *img;
[manager diskImageExistsForURL:url completion:^(BOOL isInCache) {
if (isInCache) {
img = [[manager imageCache] imageFromDiskCacheForKey:url.absoluteString];
} else {
//从网络下载图片
NSData *data = [NSData dataWithContentsOfURL:url];
img = [UIImage imageWithData:data];
}
// 保存图片到相册中
UIImageWriteToSavedPhotosAlbum(img,self, @selector(image:didFinishSavingWithError:contextInfo:),nil);
self.indicatorView.center = self.center;
[self addSubview:self.indicatorView];
[self.indicatorView startAnimating];
}];
}
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo;{
[self.indicatorView removeFromSuperview];
self.savaImageTipLabel.center = self.center;
[self addSubview:self.savaImageTipLabel];
if (error) {
self.savaImageTipLabel.text = @"保存失败";
} else {
self.savaImageTipLabel.text = @"保存成功";
}
[self.savaImageTipLabel performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:1.0];
}
- (UIActivityIndicatorView *)indicatorView
{
if (!_indicatorView) {
_indicatorView = [[UIActivityIndicatorView alloc] init];
_indicatorView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
}
return _indicatorView;
}
- (UILabel *)savaImageTipLabel{
if (_savaImageTipLabel == nil) {
_savaImageTipLabel = [[UILabel alloc] init];
_savaImageTipLabel.textColor = [UIColor whiteColor];
_savaImageTipLabel.backgroundColor = [UIColor colorWithRed:0.1f green:0.1f blue:0.1f alpha:0.90f];
_savaImageTipLabel.textAlignment = NSTextAlignmentCenter;
_savaImageTipLabel.font = [UIFont boldSystemFontOfSize:17];
_savaImageTipLabel.bounds = CGRectMake(0, 0, 150, 30);
}
return _savaImageTipLabel;
}
- 保存视频
-(void)save{
VideoModel *model = self.videos[self.index];
[self playerDownload:[NSString stringWithFormat:@"%@%@",image_header,model.url]];
}
//-----下载视频--
- (void)playerDownload:(NSString *)url{
self.indicatorView.center = self.view.center;
[self.view addSubview:self.indicatorView];
[self.indicatorView startAnimating];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
NSDateFormatter *format = [[NSDateFormatter alloc] init];
format.dateFormat = @"yyyy-MM-ddHH:mm:ss";
NSString *dateStr = [format stringFromDate:[NSDate date]];
NSString *fullPath = [NSString stringWithFormat:@"%@/%@",documentsDirectory,[NSString stringWithFormat:@"%@.mp4",dateStr]];
NSLog(@"fullPath = %@",fullPath);
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 {
[self.indicatorView removeFromSuperview];
self.savaImageTipLabel.center = self.view.center;
[self.view addSubview:self.savaImageTipLabel];
if (error) {
NSLog(@"保存视频失败%@", error.localizedDescription);
self.savaImageTipLabel.text = @"保存失败";
} else {
self.savaImageTipLabel.text = @"保存成功";
}
[self.savaImageTipLabel performSelector:@selector(removeFromSuperview) withObject:nil afterDelay:1.0];
}
- (UIActivityIndicatorView *)indicatorView
{
if (!_indicatorView) {
_indicatorView = [[UIActivityIndicatorView alloc] init];
_indicatorView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
}
return _indicatorView;
}
- (UILabel *)savaImageTipLabel{
if (_savaImageTipLabel == nil) {
_savaImageTipLabel = [[UILabel alloc] init];
_savaImageTipLabel.textColor = [UIColor whiteColor];
_savaImageTipLabel.backgroundColor = [UIColor colorWithRed:0.1f green:0.1f blue:0.1f alpha:0.90f];
_savaImageTipLabel.textAlignment = NSTextAlignmentCenter;
_savaImageTipLabel.font = [UIFont boldSystemFontOfSize:17];
_savaImageTipLabel.bounds = CGRectMake(0, 0, 150, 30);
}
return _savaImageTipLabel;
}
网友评论