ios8-Xcode6.1使用QRZBarSDK

问题描述

Xcode6.1使用QRZBarSDK

在libqrencode中,QRCodeGenerator类中一片红啊,框架导入的都正确,使用Xcode5.1没有任何问题,但是添加到Xcode6中,就是一坨红啊

#import "QRCodeGenerator.h"
#import "qrencode.h"

enum {
qr_margin = 3
};

@implementation QRCodeGenerator

  • (void)drawQRCode:(QRcode *)code context:(CGContextRef)ctx size:(CGFloat)size {
    unsigned char *data = 0;
    int width;
    data = code->data;
    width = code->width;
    float zoom = (double)size / (code->width + 2.0 * qr_margin);
    CGRect rectDraw = CGRectMake(0, 0, zoom, zoom);

    // draw
    CGContextSetFillColor(ctx, CGColorGetComponents([UIColor blackColor].CGColor));
    for(int i = 0; i < width; ++i)
    {
    for(int j = 0; j < width; ++j)
    {
    if(*data & 1) {
    rectDraw.origin = CGPointMake((j + qr_margin) * zoom,(i + qr_margin) * zoom);
    CGContextAddRect(ctx, rectDraw);
    }
    ++data;
    }
    }
    CGContextFillPath(ctx);
    }

  • (UIImage *)qrImageForString:(NSString *)string imageSize:(CGFloat)size {
    if (![string length]) {
    return nil;
    }

    QRcode *code = QRcode_encodeString([string UTF8String], 0, QR_ECLEVEL_L, QR_MODE_8, 1);
    if (!code)
    {
    return nil;
    }

    // create context
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    CGContextRef ctx = CGBitmapContextCreate(0, size, size, 8, size * 4, colorSpace, kCGImageAlphaPremultipliedLast);

    CGAffineTransform translateTransform = CGAffineTransformMakeTranslation(0, -size);
    CGAffineTransform scaleTransform = CGAffineTransformMakeScale(1, -1);
    CGContextConcatCTM(ctx, CGAffineTransformConcat(translateTransform, scaleTransform));

    // draw QR on this context

    [QRCodeGenerator drawQRCode:code context:ctx size:size];

    // get image
    CGImageRef qrCGImage = CGBitmapContextCreateImage(ctx);
    UIImage * qrImage = [UIImage imageWithCGImage:qrCGImage];

    // some releases
    CGContextRelease(ctx);
    CGImageRelease(qrCGImage);
    CGColorSpaceRelease(colorSpace);
    QRcode_free(code);

    return qrImage;
    }

@end

时间: 2024-11-10 07:05:39

ios8-Xcode6.1使用QRZBarSDK的相关文章

ios中的视图调试(ios8苹果引入了强大的新技术,不可不看)

在ios8以前,我们想要进行ui实时调试,可以依赖的技术手段有:  用xcode启动app,然后点击xcode暂停运行按钮,然后在调试控制台输入下面语句: po [[UIWindow keyWindow] recursiveDescription] 然后就可以看到完整的UI结构和层级关系,类似如下: <UIWindow: 0x7b691cd0; frame = (0 0; 320 480); gestureRecognizers = <NSArray: 0x7b6921f0>; laye

iPhone屏幕尺寸、分辨率及适配

1.iPhone尺寸规格 设备 iPhone 宽 Width 高 Height 对角线 Diagonal 逻辑分辨率(point) Scale Factor 设备分辨率(pixel) PPI 3GS 2.4 inches (62.1 mm) 4.5 inches (115.5 mm) 3.5-inch   320x480 @1x 320x480 163 4(s) 2.31 inches (58.6 mm) 4.5 inches (115.2 mm) 3.5-inch 320x480 @2x 64

请问xcode6.3环境,模拟器ios8.3下的系统键盘出现这个样子是怎么回事?

问题描述 请问xcode6.3环境,模拟器ios8.3下的系统键盘出现这个样子是怎么回事? 解决方案 ios8.3增强了键盘表情功能,同时也增加了一个Apple Watch的应用,如果你是越狱版本的话不建议升级,俯工碘继鄢荒碉维冬哩因为新系统现在尚且不能越狱. 解决方案二: 放心 真机中不会出现这种效果 模拟器可以关闭 然后clean 一下代码 重新运行看看

iOS8开发~UI布局(一)初探Size Class

一.新特性Size Class介绍 随着iOS8系统的发布,一个全新的页面UI布局概念出现,这个新特性将颠覆包括iOS7及之前版本的UI布局方式,这个新特性就是Size Class.Size Class配合Auto Layout可以解决所有(包括iPhone及iPad)iOS设备屏幕尺寸及屏幕旋转时候的UI适配问题 . 二.为什么要使用Size Class 直到iPhone6发布后,目前iOS设备的屏幕尺寸已经有4种了,如图: iPhone6没出现之前,还可以通过代码来适配两种尺寸的UI,但iP

xcode-升级EI Capitan后,XCode6.1就不能编译成功了,怎么解决

问题描述 升级EI Capitan后,XCode6.1就不能编译成功了,怎么解决 之前使用Yosemite系统,后来升级为EI Capitan后,XCode6.1就不能编译,总是报错 interface builder 编译不可以,怎么解决 解决方案 把Xcode也升级到7.2 解决方案二: xcode7.2只能运行iOS8.0及以上的模拟器,不能运行iOS7的模拟器,所以我还需要使用XCode 6.1

ios-iOS8.0 Xcode6.2 Lauch Screen 不能启动 4英寸和3.5英寸的模拟器

问题描述 iOS8.0 Xcode6.2 Lauch Screen 不能启动 4英寸和3.5英寸的模拟器 我用 Xcode6.2用single view创建一个工程,里面有一个默认的Lauch Screen.xib文件,我删除了xib文件,自己在images.xcassets文件里添加一个LauchImage,设置支持ios7.0和8.0,并且也改掉了Target 里面的Lauch Image Source,但是只有iPhone6 或者iPhone6+才有启动图片,但是其他4英寸和3.5英寸的模

Xcode6 模拟器路径

Xcode6 模拟器路径          Xcode6发布后,出现了很多的变动,功能性的变动,在这里不进行过多的赘述,在WWDC上苹果已经进行了讲述,网上也有很多文章,这里要介绍的是一些不太容易发现的,但很重要的小地方.         1.Xcode6模拟器路径的变更          在Xcode5和之前的版本中,Xcode的模拟器路径为:/Users/username/Library/Application Support/iPhone  Simulator.在该文件夹下,可以查看到所有

iOS8新特性扩展(Extension)应用之四——自定义键盘控件

iOS8新特性扩展(Extension)应用之四--自定义键盘控件         iOS8系统的开放第三方键盘,使得用户在输入法的选择上更加自主灵活,也更加贴近不同语言的输入风格.这篇博客,将介绍如何开发一个第三方的键盘控件. 一.了解UIInputViewController类         UIInputViewController是系统扩展支持键盘扩展的一个类,通过这个类,我们可以自定义一款我们自己的键盘提供给系统使用.         首先,我们先来看一下这个类中的一些属性和方法:

iOS8中的定位服务

iOS8中的定位服务 My app that worked fine in iOS 7 doesn't work with the iOS 8 SDK. CLLocationManager doesn't return a location, and I don't see my app under Settings > Location Services either. I did a Google search on the issue but nothing came up, what c