Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V6 API Migration #111

Merged
merged 5 commits into from
Apr 7, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
v6 migrate iOS/tvOS demo
  • Loading branch information
ApolloZhu committed Jan 1, 2021
commit aa665c0c7f3fab074d9a3a13fc6becf1d5e7bcd5
10 changes: 7 additions & 3 deletions Examples/iOS/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,13 @@ class AppDelegate: UIResponder, UIApplicationDelegate {

}

func UIImage2CGimage(_ image: UIImage?) -> CGImage? {
if let tryImage = image, let tryCIImage = CIImage(image: tryImage) {
return CIContext().createCGImage(tryCIImage, from: tryCIImage.extent)
func UIImage2CGImage(_ image: UIImage?) -> CGImage? {
guard let image = image else { return nil }
if let cgImage = image.cgImage {
return cgImage
}
if let ciImage = CIImage(image: image) {
return CIContext().createCGImage(ciImage, from: ciImage.extent)
}
return nil
}
32 changes: 16 additions & 16 deletions Examples/iOS/GeneratorController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ class GeneratorController: UIViewController, UITextViewDelegate, UITableViewDele
var icon: UIImage? = nil
var iconSize: EFIntSize? = nil
var watermarkMode = EFWatermarkMode.scaleAspectFill
var mode: EFQRCodeMode = .none
var mode: EFQRCodeMode? = nil
var binarizationThreshold: CGFloat = 0.5
var pointShape: EFPointShape = .square
var watermark: EFImage? = nil
Expand Down Expand Up @@ -201,19 +201,19 @@ extension GeneratorController {
lastContent.value = content as NSString

let generator = EFQRCodeGenerator(content: content, size: size)
generator.setInputCorrectionLevel(inputCorrectionLevel: inputCorrectionLevel)
generator.withInputCorrectionLevel(inputCorrectionLevel)
switch mode {
case .binarization:
generator.setMode(mode: .binarization(threshold: binarizationThreshold))
generator.withMode(.binarization(threshold: binarizationThreshold))
default:
generator.setMode(mode: mode)
generator.withMode(mode)
}
generator.setMagnification(magnification: magnification)
generator.setColors(backgroundColor: CIColor(color: backColor), foregroundColor: CIColor(color: frontColor))
generator.setIcon(icon: UIImage2CGimage(icon), size: iconSize)
generator.setForegroundPointOffset(foregroundPointOffset: foregroundPointOffset)
generator.setAllowTransparent(allowTransparent: allowTransparent)
generator.setPointShape(pointShape: pointShape)
generator.withMagnification(magnification)
generator.withColors(backgroundColor: CIColor(color: backColor), foregroundColor: CIColor(color: frontColor))
generator.withIcon(UIImage2CGImage(icon), size: iconSize)
generator.withPointOffset(foregroundPointOffset)
generator.withTransparentWatermark(allowTransparent)
generator.withPointShape(pointShape)

func alertCreationFailure() {
let alert = UIAlertController(
Expand All @@ -226,15 +226,15 @@ extension GeneratorController {

switch watermark {
case .gif(let data)?: // GIF
generator.setWatermark(watermark: nil, mode: watermarkMode)
generator.withWatermark(nil, mode: watermarkMode)

if let afterData = EFQRCode.generateWithGIF(data: data, generator: generator) {
if let afterData = EFQRCode.generateGIF(using: generator, withWatermarkGIF: data) {
present(ShowController(image: .gif(afterData)), animated: true)
} else {
alertCreationFailure()
}
case .normal(let image)?:
generator.setWatermark(watermark: UIImage2CGimage(image), mode: watermarkMode)
generator.withWatermark(UIImage2CGImage(image), mode: watermarkMode)
fallthrough // Create using UIImage with or without watermark
case nil:
if let tryCGImage = generator.generate() {
Expand Down Expand Up @@ -744,7 +744,7 @@ extension GeneratorController {
UIAlertAction(title: modeName, style: .default) {
[weak self] _ in
guard let self = self else { return }
self.mode = [.none, .grayscale, .binarization(threshold: 0.5)][index]
self.mode = [nil, .grayscale, .binarization(threshold: 0.5)][index]
self.refresh()
}
)
Expand Down Expand Up @@ -877,11 +877,11 @@ extension GeneratorController {
let watermarkModeName = Localized.Parameters.watermarkModeNames[watermarkMode.rawValue]
let modeIndex: Int = {
switch mode {
case .none:
case nil, EFQRCodeMode.none?:
return 0
case .grayscale:
return 1
default:
case .binarization:
return 2
}
}()
Expand Down
4 changes: 2 additions & 2 deletions Examples/iOS/RecognizerController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,8 @@ class RecognizerController: UIViewController, UIImagePickerControllerDelegate, U
}

@objc func scanQRCode() {
if let tryImage = UIImage2CGimage(imageView.image) {
let codes = EFQRCodeRecognizer(image: tryImage).recognize() ?? []
if let tryImage = UIImage2CGImage(imageView.image) {
let codes = EFQRCodeRecognizer(image: tryImage).recognize()
let title = codes.isEmpty ? Localized.error : Localized.success
let result = codes.first ?? NSLocalizedString(
"No QR code is found", comment: "Failed to get QRCode from image"
Expand Down