描述: 拿到一个图片url链接,然后获取图片,并保存到图片。
//保存图片
if ([action isEqualToString:@"savePicture"]) {
if (url.length > 0) {
//转码 否则 带汉字不能转为data
url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSData * data = [[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:urlString]];
UIImage *image = [[UIImage alloc]initWithData:data];
NSLog(@"---%@", data);
NSLog(@"---%@", image);
if (data != nil) {
dispatch_async(dispatch_get_main_queue(), ^{
//在这里做UI操作(UI操作都要放在主线程中执行)
[weakSelf loadImageFinished:image];
});
}
});
}
}
复制代码
- (void)loadImageFinished:(UIImage *)image
{
NSLog(@"------保存");
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), (__bridge void *)self);
}
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
if (!error) {
[self showHint:@"保存成功"];
}else {
[self showHint:@"保存失败"];
}
NSLog(@"image = %@, error = %@, contextInfo = %@", image, error, contextInfo);
}
复制代码
url:图片链接
PS:如果没有下面这句代码,若你需要保存的图片带有汉字,则转化不了为data,就无法保存成功图片。
url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
复制代码