生成動態(tài)二維碼

生成動態(tài)二維碼

因為最近遇到需要一個生成二維碼的功能,于是我就接觸了一下,現(xiàn)將我實現(xiàn)的步驟分享一下。

首先需要再網(wǎng)上下載一個生成二維碼的三方庫 qrencode ,點擊二維碼生成庫下載。里面有提供生成二維碼的API,返回 QRcode。

制作二維碼的API

注:string:需要編碼的字符串內(nèi)容;version:版本(大小等級1~40);level:容錯等級;hint:二維碼模式。

實現(xiàn)代碼:

新建一個 #import "UIImage+QRCodeGenerator.h";

在 .m 文件里實現(xiàn)

+(UIImage *)QRCodeGenerator:(NSString *)data andQuietZone (NSInteger)iQuietZone andSize:(NSInteger)iSize?

{

? ? ? ?UIImage *ret = nil;

? ? ? ?QRcode *qr = QRcode_encodeString([data ? ? ?UIT8String]),0,QR_ECLEVEL_M,QR_MODE_8,1);

? ? ? ?NSInteger logQRSize = qr->width;

? ? ? ?NSInteger phyQRSize = logQRSize + (2 * iQuietZone);

? ? ? ?NSInteger scale? ? = iSize / phyQRSize;

? ? ? ?NSInteger imgSize? = phyQRSize * scale;

? ? ? if ( scale < 1 )

? ? ? ? ?scale = 1;

? ? ? {

? ? ? ? ? ? ?UIGraphicsBeginImageContext(CGSizeMake(imgSize,imgSize));

? ? ? ? ? ? ?CGContextRef ctx = UIGraphicsGetCurrentContext();

? ? ? ? ? ? ?CGRect bounds = CGRectMake(0,0,imgSize,imgSize);

? ? ? ? ? ? ?CGContextSetFillColorWithColor(ctx,[UIColor whiteColor].CGColor);

? ? ? ? ? ? ?CGContextFillRect(ctx,bounds);

? ? ? ? ? ? // set any 'dark' colour pixels? ? ?

? ? ? ? ? ?{? ? ? ? ?

? ? ? ? ? ? ? ? ?int x,y;? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? CGContextSetFillColorWithColor(ctx,[UIColor blackColor].CGColor);? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ?for ( y=0 ; ydata[(y*logQRSize)+x] & 1 )

? ? ? ? ? ? ? CGContextFillRect(ctx,CGRectMake((iQuietZone+x)*scale, ? ? (iQuietZone+y)*scale,scale,scale));

? ? ? ? ? ?}

? ? ? ? ?// generate the UIImage

? ? ? ? CGImageRef imgRef = CGBitmapContextCreateImage(ctx);

? ? ? ? ret = [UIImage imageWithCGImage:imgRef];

? ? ? ?CGImageRelease(imgRef);

? ? ? ?UIGraphicsEndImageContext();

? ? }

QRcode_free(qr);

return ret;

? ?}

}

結(jié)果:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 有關(guān)二維碼的介紹,我這里不做過多說明, 可以直接去基維百科查看,附上鏈接QR code. IOS7之前,開發(fā)者進行...
    牛1688閱讀 1,732評論 0 0
  • 二維碼掃描現(xiàn)在已經(jīng)有很多的庫可以使用了,常用的有ZXing和ZBar。如果感興趣的同學可以自行研究。 libqre...
    韓七夏閱讀 478評論 0 0
  • 13年1月4日一個公認的即將踏入婚姻殿堂的情侶們的好日子。 許久以來的奔波,今兒終是能捧上一本中意的書,聽著清...
    休然而至閱讀 563評論 0 1
  • 13號下午抵羅馬,住的地方隔三個街區(qū)就是圣彼得大教堂,梵蒂岡城墻根,都是端著沖鋒槍的衛(wèi)兵,感覺很安全~打住,絕不能...
    雪_xue閱讀 697評論 0 2
  • 親愛的小嘉咪寶貝: 今天,你放學回來,迫不及待地和我分享學校故事,你知道嗎?這是媽媽特別特別鐘愛的環(huán)節(jié),平時總要等...
    陳穎_樂嘉媽媽閱讀 268評論 3 5

友情鏈接更多精彩內(nèi)容