iOS下载网络图片并存储到沙盒目录下
来源:互联网 发布:淘宝旺旺卖家版2017 编辑:程序博客网 时间:2024/06/07 06:06
//调用下面的方法model为一个实体类,可以传递一个网址
model.urlId为每一个网址图片的唯一标示,避免重复,如果重复会将原来图片覆盖
model.urlStr = @"http://img1.126.net/channel6/2016/022471/0805/2.jpg?dpi=6401136"
-(void)getData:(ADModel*)model{
NSString * documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];
DownloadImage([NSURLURLWithString:model.urlStr], ^(UIImage *image) {
[selfsaveImage:image withFileName:model.urlIdofType:@"jpg"inDirectory:documentsDirectoryPath];
}, ^{
});
}
//获取网址并将图片转换成NSData 并且转成image通过block返回image如果失败返回错误信息
void DownloadImage ( NSURL * URL,void (^imageBlock)(UIImage * image),void (^errorBlock)(void) )
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0 ), ^(void)
{
NSData * data = [[NSDataalloc] initWithContentsOfURL:URL];
UIImage * image = [[UIImagealloc] initWithData:data];
dispatch_async(dispatch_get_main_queue(), ^(void){
if( image !=nil )
{
imageBlock( image );
} else {
errorBlock();
}
});
});
}
//将图片存储到沙盒目录下存储成jpg形式
-(void) saveImage:(UIImage *)image withFileName:(NSString *)imageName ofType:(NSString *)extension inDirectory:(NSString *)directoryPath {
if ([[extensionlowercaseString] isEqualToString:@"png"]) {
[UIImagePNGRepresentation(image)writeToFile:[directoryPathstringByAppendingPathComponent:[NSStringstringWithFormat:@"%@.%@", imageName,@"png"]] options:NSAtomicWriteerror:nil];
} elseif ([[extensionlowercaseString] isEqualToString:@"jpg"] || [[extensionlowercaseString] isEqualToString:@"jpeg"]) {
[UIImageJPEGRepresentation(image,1.0) writeToFile:[directoryPath stringByAppendingPathComponent:[NSStringstringWithFormat:@"%@.%@", imageName,@"jpg"]] options:NSAtomicWriteerror:nil];
} else {
//ALog(@"Image Save Failed\nExtension: (%@) is not recognized, use (PNG/JPG)", extension);
NSLog(@"文件后缀不认识");
}
}
NSString * documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];
NSString *filestr = [NSStringstringWithFormat:@"/%@.jpg",_model1.urlId];
NSString*newstr = [NSStringstringWithFormat:@"%@%@",documentsDirectoryPath,filestr];
NSData*imageData = [NSDatadataWithContentsOfFile:newstr];
UIImage* image = [[UIImagealloc]initWithData:imageData];
_imageview.image = image;
- iOS下载网络图片并存储到沙盒目录下
- iOS下载网络图片
- java 下载网络上的图片并保存到本地目录
- 【Java】下载网络上的图片并保存到本地目录
- IOS从网络下载图片
- ios-异步下载网络图片
- ios 之网络下载图片
- Android (LruCache+外部存储缓存)实现网络下载图片并缓存
- 通过表单上传图片,并存储到服务器指定目录下
- AFNetworking的图片、视频下载并保存到指定的app的Caches目录下
- android 网络获取图片并存储
- Java读取网络图片并存储
- 利用缓存存储网络下载的图片
- android 通过http网络下载图片 并
- android下载网络图片并缓存
- android下载网络图片并显示
- android下载网络图片并缓存
- android下载网络图片并缓存
- uboot编译初试
- ORACLE触发器详解
- Unity 3D
- qt 之自定义 搜索框
- 虚函数
- iOS下载网络图片并存储到沙盒目录下
- win10下Anaconda管理Python开发环境
- 搭建wamp环境,数据库基础知识
- seekg()与tellg()相关文件操作
- 189. Rotate Array
- bzoj 4445: [Scoi2015]小凸想跑步 (半平面交)
- python简单应用:字数统计
- linux arp代理,DMZ与NAT
- 随机过程基本概念