Я пытаюсь создать QR-код с помощью IOS API ядра Image:Почему генератор кода QR-кода iOS не работает?
func createQRForString(#data : NSData)->CIImage!{
var qrFilter = CIFilter(name: "CIQRCodeGenerator")
qrFilter.setValue(data, forKey: "inputMessage")
qrFilter.setValue("H", forKey:"inputCorrectionLevel")
return qrFilter.outputImage
}
func createNonInterpolatedImageFromCIImage(image : CIImage,withScale scale:CGFloat)->UIImage{
let cgImage = CIContext(options: nil).createCGImage(image, fromRect: image.extent())
UIGraphicsBeginImageContext(CGSizeMake(image.extent().size.width*scale, image.extent().size.height*scale))
let context = UIGraphicsGetCurrentContext()
CGContextSetInterpolationQuality(context, kCGInterpolationNone)
let scaledImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return scaledImage
}
И следующий код в методе viewDidLoad:
let data = "Hello World".dataUsingEncoding(NSUTF8StringEncoding)
if let image=createQRForString(data: data!){
let uiimage = createNonInterpolatedImageFromCIImage(image, withScale: 1.0)
imageView.image = uiimage
}
else{
println("Error loading image")
}
}
Но ни печатает "Error" и не показывает код Qr в ImageView.
Try отслеживать на какой именно шаг вы получите первый 'nil' значение – Azat
@Azat Я подумал, что если createQRForString возвращает значение не-ноль, чем все остальные не могут опциями быть нулевым , –
Попробуйте вызвать 'UIGraphicsBeginImageContext' с некоторым статическим' size', пожалуйста, – Azat