下载网络图片到图库

代码介绍:首先开启一个线程请求网络图片,图片下载成功之后保存到相册中。代码简单易懂。

@implementation ViewController

{

NSData *data;

}

- (void)viewDidLoad {

[super viewDidLoad];

UIImageView *imageview=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 300, 200)];

[imageview setBackgroundColor:[UIColor grayColor]];

[self.view addSubview:imageview];

dispatch_async(dispatch_get_global_queue(0, 0), ^{

data=[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://image.baidu.com/search/down?tn=download&word=download&ie=utf8&fr=detail&url=http%3A%2F%2Fpic26.nipic.com%2F20121223%2F9252150_195341264315_2.jpg&thumburl=http%3A%2F%2Fimg3.imgtn.bdimg.com%2Fit%2Fu%3D806135425%2C801140138%26fm%3D21%26gp%3D0.jpg"]];

dispatch_async(dispatch_get_main_queue(), ^{

[imageview setImage:[UIImage imageWithData:data]];

UIImageWriteToSavedPhotosAlbum(imageview.image, self, @selector(imageSavedToPhotosAlbum:didFinishSavingWithError:contextInfo:), nil);

NSLog(@"下载完成1");

});

NSLog(@"下载完成2");

});

NSLog(@"下载完成3");

}

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

{

NSString *message = @"呵呵";

if (!error) {

message = @"成功保存到相册";

}else

{

message = [error description];

}

NSLog(@"message is %@",message);

}

时间: 2024-11-03 21:08:20

下载网络图片到图库的相关文章

iOS 用GCD下载网络图片方法

用多线程下载网络图片会导致重复下载浪费流量的问题. 以免出现以上情况,用多线程下载图片方法可以用以下方法. 1.创建一个字典,如果下载了该图片则将用图片地址为key,图片为value保存. 2.创建一个字典,如果子线程已开始下载则用图片地址为key,图片地址为value保存. 3.如果正在下载中,显示占位图片 4.如果字典中有下载的图片,则刷新图片 //属性 @interface ViewController () @property (weak, nonatomic) IBOutlet UII

Android实战简易教程-第七十一枪(异步网络下载网络图片及图片廊制作)

首先来实现异步下载网络图片,布局文件如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_pare

android下载网络图片并缓存

异步下载网络图片,并提供是否缓存至内存或外部文件的功能 异步加载类AsyncImageLoader public void downloadImage(final String url, final ImageCallback callback); public void downloadImage(final String url, final boolean cache2Memory, final ImageCallback callback); public void setCache2F

Android 下载网络图片保存到本地

通过网络地址获取网络图片,点击下载将图片显示出来,然后点击图片将图片保存到本地. 首先需要在manifest上添加一些权限: [java] view plain copy <!-- 访问网络的权限 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 文件读取的权限 --> <uses-permission android:name="andro

Android 开发中下载的图片 图库中看不到

Android 开发中下载的图片,但是代开图库的时候,不能马上看到图片.是因为android 内部有一个 扫描机制, 你下载之后图片已经存在了,但是没有被扫描到.所以你马上打开图库 看不到 下载的图片: 需啊哟加入下面的 代码 下载完成的hanlder 中处理: 直接调用就可以 MediaScannerConnection.scanFile( ShowBigImage.this, new String[] {url}, null, null);

android下载网络图片,设置宽高,等比缩放

使用Picasso组件去下载图片会发现图片宽高会变形不受等比缩放控制,即使设置了图片的 scaleType,可能是对Picasso的api没有用对, Picasso.with(this.activity) .load(AppModel.GetInstance().userAvatarPath) .noFade() .fit() .into(avatar) 使用Glide库会更加方便,很好控制下载好的图片宽高等比缩放 1,布局如下: <ImageView android:id="@+id/q

Android 利用Service实现下载网络图片至sdk卡

1 package com.example.myapp5; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.view.View; 7 import android.widget.Button; 8 /** 9 * Android 利用service实现下载图片功能 10 * @author shaobn 11 * @date

一个用于批量下载网络图片的Shell脚本

By Long Luo 最近为了做好一个天气预报的项目,需要从Yahoo下载一些天气图标,但是由于图标比较多,有80多张.图标是存储在Yahoo Image网站上的. 迅雷不支持https的下载,虽然可以在浏览器下载,但是在浏览器下载太慢,于是写了一个批量下载图片资源的Shell脚本,完美的解决了这个问题. Yahoo天气图标的地址规则如下:`https://s.yimg.com/zz/combo?a/i/us/nws/weather/gr/` + 图标名称 比如: 我使用了2种方法,解决了下载

IOS开发-第三方SDWebImage下载网络图片的使用

从网络上请求图片时,没有使用第三方的话,下载会很慢,而且堵塞线程,还要自己处理多线程问题,效果还非常不明显,使用了SDWebImage这个第三方类库之后,下载图片就变的容易多了. SDWebImage这个类库提供一个UIImageView类别以支持加载来自网络的远程图片.具有缓存管理.异步下载.同一个URL下载次数控制和优化等特征 利用CocoaPods安装SDWebImage 在profile里放入pod 'SDWebImage', '~> 3.7.3'保存,pod isntall安装,完成后