Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rudifa/ios-qrcodegenerator
struct QRCodeGenerator: simplifies QR code generation in an iOS application.
https://github.com/rudifa/ios-qrcodegenerator
Last synced: 14 days ago
JSON representation
struct QRCodeGenerator: simplifies QR code generation in an iOS application.
- Host: GitHub
- URL: https://github.com/rudifa/ios-qrcodegenerator
- Owner: rudifa
- Created: 2020-03-19T22:51:51.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-06-08T11:33:39.000Z (over 4 years ago)
- Last Synced: 2024-12-14T15:22:24.476Z (2 months ago)
- Language: Swift
- Homepage:
- Size: 126 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# QRCodeGenerator
Initially based on code from Appcoda article [Building a QR Code Generator with Core Image Filters](https://www.appcoda.com/qr-code-generator-tutorial).
Extracted and refined QRCode generation and manipulation into `struct QRCodeGenerator`.
Added controls to ViewController to manipulate text entry, size, redundancy, url encode or not, mode (.blackOnWhite, .whiteOnClear, .clearOnWhite).## `struct QRCodeGenerator`
Generates an UIImage from the input text string.
The API consists of an initializer and input and output properties.
Initializer with default property values:
```
init(qrText: String = "hello folks",
customUrlIdentifier: String = "textreader",
correctionLevel: CorrectionLevel = .corrPct15,
imageSidePt: CGFloat = 250.0,
customUrl: Bool = false,
mode: Mode = .blackOnWhite,
foregroundColor: CIColor = CIColor(red: 0.206, green: 0.599, blue: 0.860)```
Input properties:
```
var qrText: String // text to be encoded
var customUrlIdentifier: String // identifier, like "textreader" in "textreader://hello"
var correctionLevel: CorrectionLevel // correction/reundancy level
var imageSidePt: CGFloat // side size of the quadratic generated image
var customUrl: Bool // false: uses qrText as is, true: creates a custom URL like "textreader://hello%20folks"
var mode: Mode // output mode
var foregroundColor: CIColor // color of the QRCode imageCorrectionLevel: corrPct7, corrPct15, corrPct25, corrPct30
Mode: blackOnClear, blackOnColored, blackOnWhite,
clearOnBlack, clearOnColored, clearOnWhite,
coloredOnBlack, coloredOnClear, coloredOnWhite,
whiteOnBlack, whiteOnClear, whiteOnColored```
Output property:
```
var uiImage: UIImage? // the generated image
```Create an instance with default property values:
```
var generator = QRCodeGenerator()
```
Modify its properties:
```
generator.qrText = "Hello"
customUrlIdentifier: String = "lipreader"
generator.correctionLevel = .corrPct7
generator.imageSidePt = 100.0
generator.customUrl = true
generator.mode = .clearOnWhite
generator.foregroundColor = CIColor(red: 0.99, green: 0.99, blue: 0.0)
```
Create an instance with modified properties:
```
let generator2 = QRCodeGenerator(qrText: "Bye",
correctionLevel: .corrPct30,
imageSidePt: 200.0,
mode: .clearOnWhite)
```Get the generated QR code image:
```
let image: UIImage = generator.uiImage()!
```## class ViewController
Provides a test-and-demo UI for various foreground and background colors, QRCode image size and modes,
QRCode redundancy (7%-30%), urlEncoded or plain, and export to photos or to printer.