Generate QR codes as ASCII art in your terminal.
This package creates scannable QR codes using Unicode block characters, making them work well in monospace terminal fonts while maintaining proper proportions.
Add this package to your Dart project with:
dart pub add ascii_qr
Or add it to your pubspec.yaml
manually:
dependencies:
ascii_qr: ^1.0.1
The package provides a simple interface through the AsciiQrGenerator
class:
import 'package:ascii_qr/ascii_qr.dart';
void main() {
print(AsciiQrGenerator.generate(
'https://cypherstack.com/',
errorCorrectLevel: QrErrorCorrectLevel.H,
));
}
This produces a scannable QR code in your terminal:
███████████████████████████████
█ ▄▄▄▄▄ █▄▀▀ ▀ █▀▄ █ █ ▄▄▄▄▄ █
█ █ █ █▄█ ▀▄▄█▀ ▀▄▀▄█ █ █ █
█ █▄▄▄█ █▄█▀ ▄ ▀▀ ▄▄ █ █▄▄▄█ █
█▄▄▄▄▄▄▄█ ▀▄█▄█ █ █▄█▄█▄▄▄▄▄▄▄█
█▀▀███▄▄▀▀██ ▀ █ ██▄▀ █ ▀▄█
█▄▀▄█▄▀▄█ ██ ▄█▄▀ ▄█▀ ▄ ▄▀▀▄███
█▀ ▄▄▄▄▄█ ▀▀▀▀▄ ▄ ██▀▀▄ █▀▀█ ▀█
█ ▄▄ ▄▄ ██▀▄▄ ▀ ▀ ▄▄▀▀▀▀▀█
█▀█▄█ ▄▄▄█ ▄█▄ ▄ ▄ █▀▀▄▀▀▀▄▄█▀█
█ ▄▄█ ▄ █▄▄▄▀█ ▀▄▄ █▀▀█ ▀██▄█
█▄████▄▄▄ ▄ █ ▀▀ ▀▀█ ▄▄▄ ▄▄█
█ ▄▄▄▄▄ █▀▄▀▄█▀▀█ ▀█ █▄█ ▀████
█ █ █ ██▄ ▀▄▀▀▄ ▄ ▄▄ ▄▀█ ██
█ █▄▄▄█ ██ ▄▄▀▄▀ ▄▄ ▄▄ ▀▀▄▀█
█▄▄▄▄▄▄▄██▄▄▄▄██▄██▄▄█▄▄█▄█▄███
███████████████████████████████
The generate
method accepts several parameters to customize the output:
String generate(
String data, {
int errorCorrectLevel = QrErrorCorrectLevel.L,
int horizontalScale = 1,
int verticalScale = 1,
})
errorCorrectLevel
determines the QR code's error correction capability:
QrErrorCorrectLevel.L
: Recovers 7% of dataQrErrorCorrectLevel.M
: Recovers 15% of dataQrErrorCorrectLevel.Q
: Recovers 25% of dataQrErrorCorrectLevel.H
: Recovers 30% of data
horizontalScale
and verticalScale
let you adjust the QR code's aspect ratio
to match your terminal's font metrics. Some terminals may need a
horizontalScale
of 2 to create properly square QR codes.
The generator creates QR codes using Unicode block characters to represent pairs of modules vertically:
- Full block (█) for light modules
- Space ( ) for dark modules
- Upper half-block (▀) and lower half-block (▄) for mixed pairs
This approach creates compact, scannable QR codes that maintain proper proportions in most terminal fonts.
MIT License. See LICENSE file for details.