iOS開發中使用CIFilter生成二維碼和條形碼
在iOS7之後我們可以使用蘋果自帶的CIFilter這個類生成二維碼,我們可以通過為UIImage這個類新增一個分類來實現該功能。程式碼:
+ (UIImage *)qrCodeImageWithInfo:(NSString *)info width:(CGFloat)width
{
if (!info) {
return nil;
}
NSData *strData = [info dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
//建立二維碼濾鏡
CIFilter *qrFilter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
[qrFilter setValue:strData forKey:@"inputMessage"];
[qrFilter setValue:@"H" forKey:@"inputCorrectionLevel"];
CIImage *qrImage = qrFilter.outputImage;
//顏色濾鏡
CIFilter *colorFilter = [CIFilter filterWithName:@"CIFalseColor"];
[colorFilter setDefaults];
[colorFilter setValue:qrImage forKey:kCIInputImageKey];
// [colorFilter setValue:[CIColor colorWithRed:0 green:0 blue:0] forKey:@"inputColor0"];
// ![Uploading 1A4978EE-427F-4804-B536-1D5C330A0578_306160.png . . .][colorFilter setValue:[CIColor colorWithRed:1 green:1 blue:1] forKey:@"inputColor1"];
CIImage *colorImage = colorFilter.outputImage;
//返回二維碼
CGFloat scale = width/31;
UIImage *codeImage = [UIImage imageWithCIImage:[colorImage imageByApplyingTransform:CGAffineTransformMakeScale(scale, scale)]];
return codeImage;
}
在iOS8之後我們還可以使用CIFilter這個類來生成條形碼,我們同樣可以通過為UIImage這個類新增分類的方法來實現該功能。程式碼:
+ (UIImage *)barCodeImageWithInfo:(NSString *)info
{
// 1.將字串轉換成NSData
NSData *data = [info dataUsingEncoding:NSUTF8StringEncoding];
// 2.建立條形碼濾鏡
CIFilter *filter = [CIFilter filterWithName:@"CICode128BarcodeGenerator"];
// 3.恢復濾鏡的預設屬性
[filter setDefaults];
// 4.設定濾鏡inputMessage資料
[filter setValue:data forKey:@"inputMessage"];
// 5.獲得濾鏡輸出的影象
CIImage *urlImage = [filter outputImage];
// 6.將CIImage 轉換為UIImage
UIImage *image = [UIImage imageWithCIImage:urlImage];
return image;
}
相關文章
- iOS 生成二維碼/條形碼iOS
- IOS 二維碼條形碼生成(原生程式碼)iOS
- iOS 掃描二維碼/條形碼iOS
- Java 條形碼生成(一維條形碼)Java
- 使用 Python 生成二維條形碼 QR CodesPython
- iOS開發-原生二維碼的掃描和生成iOS
- iOS 花式二維碼生成和二維碼識別iOS
- ios--二維碼生成iOS
- 用OpenCV和Python識別二維碼和條形碼OpenCVPython
- iOS開發中識別圖中的二維碼iOS
- 微信二次開發(生成二維碼)
- Python 生成條形碼、二維碼 (Code 128、EAN-13、QR code等)Python
- Android 二維碼掃描和生成二維碼Android
- iOS 二維碼生成以及識別iOS
- Python 在PDF中新增條形碼、二維碼Python
- iOS開發之掃描二維碼iOS
- 使用 Python 生成二維碼Python
- 二維碼管理平臺 生成二維碼
- 使用ABAP程式碼生成二維碼(QR Code)
- 如何使用 Python 生成二維碼?Python
- Flutter - 生成二維碼與識別二維碼Flutter
- jquery生成二維碼jQuery
- 二維碼線上生成
- Qt-qrencode開發-生成、顯示二維碼📀QT
- C#中輕鬆實現二維碼和條形碼識別:OpenCvSharp和ZXing詳細教程C#OpenCV
- php生成條形碼的圖片PHP
- IOS 使用 ZbarSDK 二維碼掃描iOS
- 直播系統搭建,java二維碼 生成二維碼Java
- ios打包 蒲公英生成二維碼掃描下載iOS
- Java使用QRGen類庫生成二維碼Java
- PHP、Python、JavaScript 識別二維碼和生成二維碼解決方案PHPPythonJavaScript
- Tp框架 生成二維碼框架
- 二維碼生成工具類
- 二維碼生成-PythonPython
- c++生成二維碼C++
- JS線上生成二維碼JS
- 二維碼線上生成工具
- iBarcoder for Mac條形碼生成工具Mac