Xojo iOS にてQRコード生成をShift JIS形式で生成するモジュール
Function generateQR(qrString As Text, width As Single, height As Single) As iOSImage Declare Function NSClassFromString Lib "Foundation" (aClassName as CFStringRef) as Ptr // - (CIImage *)createQRForString:(NSString *)qrString // { // // Need to convert the string to a UTF-8 encoded NSData object // NSData *stringData = [qrString dataUsingEncoding:NSUTF8StringEncoding]; Declare Function dataUsingEncoding Lib "Foundation" Selector "dataUsingEncoding:" (str As CFStringRef, enc As Integer) As Ptr Const NSShiftJISStringEncoding As Integer = 8 Dim stringData As = dataUsingEncoding(qrString, NSShiftJISStringEncoding) // // Create the filter // CIFilter *qrFilter = [CIFilter filterWithName:@"CIQRCodeGenerator"]; Declare Function filterWithName Lib "UIKit" Selector "filterWithName:" (obj_ID As Ptr, filtername As CFStringRef) As Ptr Dim qrFilter As Ptr = filterWithName(NSClassFromString("CIFilter"), "CIQRCodeGenerator") // // Set the message content and error-correction level Declare sub setValue Lib "Foundation" Selector "setValue:forKey:" (obj_ID As Ptr, data As Ptr, Key As CFStringRef) setValue(qrFilter, stringData, "inputMessage") // [qrFilter setValue:@"M" forKey:@"inputCorrectionLevel"]; Declare sub setValue1 Lib "Foundation" Selector "setValue:forKey:" (obj_ID As Ptr, data As CFStringRef, Key As CFStringRef) setValue1(qrFilter, "M", "inputCorrectionLevel") Declare Function valueForKey Lib "Foundation" Selector "valueForKey:" (obj_ID As Ptr, key As CFStringRef) As Ptr Dim qrCIImage As Ptr = valueForKey(qrFilter, "outputImage") // ← CIImageを取得 Declare Function imageWithCIImage Lib "UIKit" Selector "imageWithCIImage:" (obj_ID As Ptr, ciimage As Ptr) As Ptr Dim qrCodeImage As Ptr = imageWithCIImage(NSClassFromString("UIImage"), qrCIImage) Dim qrImageData As iOSBitmap = New iOSBitmap(width, height, 1.0, False) CGContextSetInterpolationQuality(qrImageData.Graphics.Handle, 1) 'qrImageData.Graphics.Alpha = 0 qrImageData.Graphics.DrawImage iOSImage.FromHandle(qrCodeImage), 0, 0, width, height Return qrImageData.Image End Function