You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 lines
4.8 KiB
144 lines
4.8 KiB
// |
|
// QRcodeViewController.m |
|
// watch |
|
// |
|
// Created by xTT on 2017/7/17. |
|
// Copyright © 2017年 xTT. All rights reserved. |
|
// |
|
|
|
#import "QRcodeViewController.h" |
|
#import "Circle.h" |
|
|
|
@interface QRcodeViewController () |
|
|
|
@end |
|
|
|
@implementation QRcodeViewController |
|
|
|
- (void)viewDidLoad { |
|
[super viewDidLoad]; |
|
// Do any additional setup after loading the view. |
|
// self.codeBG.layer.borderColor = [UIColor colorWithWhite:0.5 alpha:0.5].CGColor; |
|
// self.codeBG.layer.borderWidth = 1; |
|
|
|
self.zx_navTitle = @"二维码"; |
|
|
|
self.label_name.text = cUser.cDevice.name; |
|
|
|
self.deviceImage.layer.cornerRadius = CGRectGetWidth(self.deviceImage.frame)/2; |
|
self.deviceImage.layer.masksToBounds = YES; |
|
self.imeiLabel.text = [NSString stringWithFormat:@"IMEI/MEID:%@",cUser.cDevice.imei]; |
|
UIImage *defaImage ; |
|
if([cUser.cDevice.sex isEqualToString:@"girl"]){ |
|
defaImage = [UIImage imageNamed:@"icon_girl_head_portrait_1"]; |
|
}else{ |
|
defaImage = [UIImage imageNamed:@"icon_boy_head_portrait_1"]; |
|
} |
|
[self.deviceImage sd_setImageWithURL:[NSURL URLWithString:cUser.cDevice.avator] placeholderImage:defaImage]; |
|
|
|
|
|
WEAKSELF |
|
Circle *circle = [cUser getCircleWithImei:cUser.cDevice.imei]; |
|
[circle getCircleInviteTokenSuccess:^(id responseObject){ |
|
NSString *codeStr = [weakSelf getUriWithDic:@{ |
|
// @"inviteToken":responseObject[@"inviteToken"], |
|
@"groupid":circle.groupid, |
|
@"imei":cUser.cDevice.imei} |
|
Url:responseObject[@"baseURL"]]; |
|
[weakSelf setImageViewWithCodeStr:codeStr]; |
|
// weakSelf.label_InviteToken.text = [NSString stringWithFormat:@"邀请码:%@",responseObject[@"inviteToken"]]; |
|
} failure:^{ |
|
[weakSelf setImageViewWithCodeStr:cUser.cDevice.imei]; |
|
}]; |
|
} |
|
|
|
- (void)setImageViewWithCodeStr:(NSString *)codeStr{ |
|
CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"]; |
|
[filter setDefaults]; |
|
|
|
NSData *data = [codeStr dataUsingEncoding:NSUTF8StringEncoding]; |
|
[filter setValue:data forKeyPath:@"inputMessage"]; |
|
// 4.获取输出的二维码 |
|
CIImage *outputImage = [filter outputImage]; |
|
|
|
self.imageView_Code.image = [self createNonInterpolatedUIImageFormCIImage:outputImage |
|
withSize:_imageView_Code.frame.size.width]; |
|
} |
|
|
|
- (NSString *)getUriWithDic:(NSDictionary *)dic Url:(NSString *)Url{ |
|
if (!Url) { |
|
Url = @""; |
|
} |
|
|
|
NSMutableArray *arr = [NSMutableArray array]; |
|
[dic enumerateKeysAndObjectsUsingBlock:^(id _Nonnull key, id _Nonnull obj, BOOL * _Nonnull stop) { |
|
[arr addObject:[NSString stringWithFormat:@"%@=%@",key,obj]]; |
|
}]; |
|
|
|
NSRange range = [Url rangeOfString:@"?"]; |
|
if (range.location == NSNotFound) { |
|
return [NSString stringWithFormat:@"%@?%@",Url,[arr componentsJoinedByString:@"&"]]; |
|
}else{ |
|
return [NSString stringWithFormat:@"%@&%@",Url,[arr componentsJoinedByString:@"&"]]; |
|
} |
|
} |
|
|
|
//高清二维码 |
|
- (UIImage *)createNonInterpolatedUIImageFormCIImage:(CIImage *)image withSize:(CGFloat) size { |
|
|
|
CGRect extent = CGRectIntegral(image.extent); |
|
|
|
//设置比例 |
|
|
|
CGFloat scale = MIN(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent)); |
|
|
|
// 创建bitmap(位图); |
|
|
|
size_t width = CGRectGetWidth(extent) * scale; |
|
|
|
size_t height = CGRectGetHeight(extent) * scale; |
|
|
|
CGColorSpaceRef cs = CGColorSpaceCreateDeviceGray(); |
|
|
|
CGContextRef bitmapRef = CGBitmapContextCreate(nil, width, height, 8, 0, cs, (CGBitmapInfo)kCGImageAlphaNone); |
|
|
|
CIContext *context = [CIContext contextWithOptions:nil]; |
|
|
|
CGImageRef bitmapImage = [context createCGImage:image fromRect:extent]; |
|
|
|
CGContextSetInterpolationQuality(bitmapRef, kCGInterpolationNone); |
|
|
|
CGContextScaleCTM(bitmapRef, scale, scale); |
|
|
|
CGContextDrawImage(bitmapRef, extent, bitmapImage); |
|
|
|
// 保存bitmap到图片 |
|
|
|
CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef); |
|
|
|
CGContextRelease(bitmapRef); |
|
|
|
|
|
|
|
CGImageRelease(bitmapImage); |
|
|
|
return [UIImage imageWithCGImage:scaledImage]; |
|
|
|
} |
|
|
|
- (void)didReceiveMemoryWarning { |
|
[super didReceiveMemoryWarning]; |
|
// Dispose of any resources that can be recreated. |
|
} |
|
|
|
/* |
|
#pragma mark - Navigation |
|
|
|
// In a storyboard-based application, you will often want to do a little preparation before navigation |
|
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { |
|
// Get the new view controller using [segue destinationViewController]. |
|
// Pass the selected object to the new view controller. |
|
} |
|
*/ |
|
|
|
@end
|
|
|