zoukankan      html  css  js  c++  java
  • iOS8 生成二维码与条形码

    iOS8 生成二维码与条形码

    效果图:

    源码:

    //
    //  ViewController.m
    //  CodeCreator
    //
    //  Created by YouXianMing on 15/3/16.
    //  Copyright (c) 2015年 YouXianMing. All rights reserved.
    //
    
    #import "ViewController.h"
    
    @interface ViewController ()
    
    @property (nonatomic, strong) UIImageView *imageView;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
        self.imageView        = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
        self.imageView.center = self.view.center;
        [self.view addSubview:self.imageView];
        
        
        [self generateCode];
    }
    
    - (UIImage *)resizeImage:(UIImage *)image
                 withQuality:(CGInterpolationQuality)quality
                        rate:(CGFloat)rate {
        UIImage *resized = nil;
        CGFloat width    = image.size.width * rate;
        CGFloat height   = image.size.height * rate;
        
        UIGraphicsBeginImageContext(CGSizeMake(width, height));
        CGContextRef context = UIGraphicsGetCurrentContext();
        CGContextSetInterpolationQuality(context, quality);
        [image drawInRect:CGRectMake(0, 0, width, height)];
        resized = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        
        return resized;
    }
    
    - (void)generateCode {
        
        // @"CICode128BarcodeGenerator"  条形码
        // @"CIAztecCodeGenerator"       二维码
        NSString *filtername = @"CICode128BarcodeGenerator";
    
        
        CIFilter *filter = [CIFilter filterWithName:filtername];
        [filter setDefaults];
        
        NSData *data = [@"YouXianMing" dataUsingEncoding:NSUTF8StringEncoding];
        [filter setValue:data forKey:@"inputMessage"];
        
        CIImage *outputImage = [filter outputImage];
        CIContext *context = [CIContext contextWithOptions:nil];
        CGImageRef cgImage = [context createCGImage:outputImage
                                           fromRect:[outputImage extent]];
        UIImage *image = [UIImage imageWithCGImage:cgImage
                                             scale:1.
                                       orientation:UIImageOrientationUp];
        
        // Resize without interpolating
        CGFloat scaleRate = self.imageView.frame.size.width / image.size.width;
        UIImage *resized = [self resizeImage:image
                                 withQuality:kCGInterpolationNone
                                        rate:scaleRate];
        
        self.imageView.image = resized;
        
        CGImageRelease(cgImage);
    }
    
    @end
  • 相关阅读:
    Spring+Springmvc+SpringJDBC+freemaker+Logback配置
    POJ1942+找规律
    HDU2955+DP+背包变形
    HDU1201+简单题
    HDU1288+枚举
    面试经验(转)
    HDU1864+dp+类似背包
    PKU1659+havelhakimi定理
    算法复杂度分析(摘)
    HDU3047+并查集
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/4343067.html
Copyright © 2011-2022 走看看