230,队列组——同时下载两张图片,然后,合并显示
来源:互联网 发布:linux nmon 编辑:程序博客网 时间:2024/04/27 15:19
#import "ViewController.h"
@interface ViewController ()
@property (nonatomic,strong)UIImageView *imageview;
@end
@implementation ViewController
- (UIImageView *)imageview{
if (_imageview ==nil) {
_imageview = [[UIImageViewalloc] initWithFrame:CGRectMake(0,0, self.view.bounds.size.width,self.view.bounds.size.height)];
[self.viewaddSubview:_imageview];
}
return_imageview;
}
/**
* 队列组的作用:队列组里面队列的所有任务都执行完了,再执行notify方法
*/
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
//1,创建一个队列组
dispatch_group_t group =dispatch_group_create();
//2,创建一个队列
dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
//3,开启一个新的异步线程,下载第一张图片image1
__block UIImage *image1 =nil;
dispatch_group_async(group, queue, ^{
NSURL *url = [NSURLURLWithString:@"http://image64.360doc.com/DownloadImg/2013/09/0513/34991836_5.jpg"];
NSData *data = [NSDatadataWithContentsOfURL:url];
image1 = [UIImage imageWithData:data];
});
//4,再开一个新的异步线程,跟第三步同时下载image2
__block UIImage *image2 =nil;
dispatch_group_async(group, queue, ^{
NSURL *url = [NSURLURLWithString:@"http://a0.att.hudong.com/58/59/19300001173647130466595655170.jpg"];
NSData *data = [NSDatadataWithContentsOfURL:url];
image2 = [UIImage imageWithData:data];
});
//5,前面两个线程执行完后,就执行下面的方法
__block UIImage *image3 =nil;
dispatch_group_notify(group, queue, ^{
//创建一个空的image3,开始画图
UIGraphicsBeginImageContextWithOptions(image1.size,NO, 0.0);
//将第一个image1画入image3
[image1 drawInRect:CGRectMake(0,0, image1.size.width, image1.size.height)];
//将第二个image2画入image3
[image2 drawInRect:CGRectMake(0,0, image2.size.width, image2.size.height)];
//获取水印后的图片
image3 = UIGraphicsGetImageFromCurrentImageContext();
//结束画图
UIGraphicsEndImageContext();
//回到主线程,更新UI
dispatch_async(dispatch_get_main_queue(), ^{
self.imageview.image = image3;
});
});
}
@end
- 230,队列组——同时下载两张图片,然后,合并显示
- 合并两张图片
- OpenCV 合并两张图片
- 异步下载多张图片, 合并成一张显示
- ios合并两张图片(叠加两张图片 重合两张图片)
- 合并两张图片(水印效果)
- C# 合并两张图片的方法
- android 两张图片合并作背景图
- android-合并两张图片bitmap
- OpenCV两张图片的合并
- java实现把两张图片合并
- android-合并两张图片bitmap
- [转]OpenCV两张图片的合并
- PHP合并两张图片的实现
- java实现把两张图片合并
- iOS开发多线程之队列组——下载合并图片
- 异步下载图片,同时下载多张图片
- android中将两张图片合并为一张图片
- java基础篇--03<匿名内部类&枚举类>
- 智慧北京笔记4
- MFC 技巧之五
- C++:运算符重载2(双目:复数的减法)
- 反射
- 230,队列组——同时下载两张图片,然后,合并显示
- python学习中遇到问题
- MFC 技巧之六
- opentsdb采集的数据存放在哪里
- Android开发拍照后相册不显示的问题
- 智慧北京笔记5
- 串口输入十六进制字符串数据,接收后转换为十进制数据
- 关于php上传多张图片时,选择图片后就可以预览的问题
- adb命令 reboot重启设备