iOS开发iOS学习笔记iOS开发记录

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

2018-01-10  本文已影响902人  我是七月
奋斗的七月

夜深了,话不多说,直接撸代码

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…
        [self showHintMiddle:@"图片保存失败"];
    }
    else  // No errors
    {
        // Show message image successfully saved
        [self showHintMiddle:@"图片保存成功"];
    }
}

2.保存网络视频到手机相册
//-----下载视频--
- (void)playerDownload:(NSString *)url{
    
    [self showWaitHint:@""];
    
    DDLog(@"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) {
                       DDLog(@"%@",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 hideHUD];
        [self showHintMiddle:@"视频保存失败"];
    }
    else {
        NSLog(@"保存视频成功");
        [self hideHUD];
        [self showHintMiddle:@"视频保存成功"];
    }
}

上一篇下一篇

猜你喜欢

热点阅读