如何生成包含详细信息的二维码
How to generate a QRCode with number of details
我没有使用 QRCode 生成器和扫描仪的经验,但我尝试从下面显示的字符串生成 QRCode。我想用一些值来生成它,比如位置地址、姓名、手机号码、邮件、网站、任何文件。谁能帮我做一下。
@IBAction func generate(_ sender: Any) {
if let mystring = mytextfield.text {
let data = mystring.data(using: .ascii, allowLossyConversion: false)
let filter = CIFilter(name: "CIQRCodeGenerator")
filter?.setValue(data, forKey: "InputMessage")
let ciImage = filter?.outputImage
let transform = CGAffineTransform(scaleX: 10, y: 10)
let transformimage = ciImage?.transformed(by: transform)
let image = UIImage(ciImage: transformimage!)
img.image=image
saveimg.isEnabled=true
}
}
@IBAction func saveimage(_ sender: Any) {
screenshotmethod()
}
func screenshotmethod(){
let layer = UIApplication.shared.keyWindow!.layer
let scale = UIScreen.main.scale
UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, scale)
layer.render(in: UIGraphicsGetCurrentContext()!)
let screenshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIImageWriteToSavedPhotosAlbum(screenshot!, nil, nil, nil)
}
尝试将 Dictionary
中的详细信息转换为 JSON
数据,然后将其设置为 CIFilter
。
var jsonDict = [String: Any]()
jsonDict.updateValue("Your_Name", forKey: "name")
jsonDict.updateValue("1234567890", forKey: "number")
guard let jsonData = try? JSONSerialization.data(withJSONObject: jsonDict, options: [.prettyPrinted]) else {
return
}
let filter = CIFilter(name: "CIQRCodeGenerator")
filter?.setValue(jsonData, forKey: "InputMessage")
您可以通过将任何字符串发送到以下函数来轻松生成 QRCode:
private func generateQRCode(from data: Data) -> UIImage? {
if let filter = CIFilter(name: "CIQRCodeGenerator") {
filter.setValue(data, forKey: "inputMessage")
let transform = CGAffineTransform(scaleX: 10, y: 10)
if let output = filter.outputImage?.transformed(by: transform) {
return UIImage(ciImage: output)
}
}
return nil
}
我是这样用的
private func generateQRCode(){
var jsonDict = [String: Any]()
jsonDict.updateValue("Your_Name", forKey: "name")
jsonDict.updateValue("1234567890", forKey: "number")
guard let jsonData = try? JSONSerialization.data(withJSONObject: jsonDict, options: [.prettyPrinted]) else {
return
}
let filter = CIFilter(name: "CIQRCodeGenerator")
filter?.setValue(jsonData, forKey: "InputMessage")
let qrTransform = CGAffineTransform(scaleX: 12, y: 12)
let qrImage = filter?.outputImage?.transformed(by: qrTransform)
img_ticket_qr.image = UIImage(ciImage: qrImage!)
}
我没有使用 QRCode 生成器和扫描仪的经验,但我尝试从下面显示的字符串生成 QRCode。我想用一些值来生成它,比如位置地址、姓名、手机号码、邮件、网站、任何文件。谁能帮我做一下。
@IBAction func generate(_ sender: Any) {
if let mystring = mytextfield.text {
let data = mystring.data(using: .ascii, allowLossyConversion: false)
let filter = CIFilter(name: "CIQRCodeGenerator")
filter?.setValue(data, forKey: "InputMessage")
let ciImage = filter?.outputImage
let transform = CGAffineTransform(scaleX: 10, y: 10)
let transformimage = ciImage?.transformed(by: transform)
let image = UIImage(ciImage: transformimage!)
img.image=image
saveimg.isEnabled=true
}
}
@IBAction func saveimage(_ sender: Any) {
screenshotmethod()
}
func screenshotmethod(){
let layer = UIApplication.shared.keyWindow!.layer
let scale = UIScreen.main.scale
UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, scale)
layer.render(in: UIGraphicsGetCurrentContext()!)
let screenshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIImageWriteToSavedPhotosAlbum(screenshot!, nil, nil, nil)
}
尝试将 Dictionary
中的详细信息转换为 JSON
数据,然后将其设置为 CIFilter
。
var jsonDict = [String: Any]()
jsonDict.updateValue("Your_Name", forKey: "name")
jsonDict.updateValue("1234567890", forKey: "number")
guard let jsonData = try? JSONSerialization.data(withJSONObject: jsonDict, options: [.prettyPrinted]) else {
return
}
let filter = CIFilter(name: "CIQRCodeGenerator")
filter?.setValue(jsonData, forKey: "InputMessage")
您可以通过将任何字符串发送到以下函数来轻松生成 QRCode:
private func generateQRCode(from data: Data) -> UIImage? {
if let filter = CIFilter(name: "CIQRCodeGenerator") {
filter.setValue(data, forKey: "inputMessage")
let transform = CGAffineTransform(scaleX: 10, y: 10)
if let output = filter.outputImage?.transformed(by: transform) {
return UIImage(ciImage: output)
}
}
return nil
}
我是这样用的
private func generateQRCode(){
var jsonDict = [String: Any]()
jsonDict.updateValue("Your_Name", forKey: "name")
jsonDict.updateValue("1234567890", forKey: "number")
guard let jsonData = try? JSONSerialization.data(withJSONObject: jsonDict, options: [.prettyPrinted]) else {
return
}
let filter = CIFilter(name: "CIQRCodeGenerator")
filter?.setValue(jsonData, forKey: "InputMessage")
let qrTransform = CGAffineTransform(scaleX: 12, y: 12)
let qrImage = filter?.outputImage?.transformed(by: qrTransform)
img_ticket_qr.image = UIImage(ciImage: qrImage!)
}