#qr #encode #generator #terminal #image #computer-vision

app eqr

Encode text into svg/png/jpg/terminal-format QR codes with optional logo

23 stable releases

new 1.7.2 Feb 22, 2025
1.6.3 Feb 8, 2025
1.5.1 Jan 30, 2025
1.1.5 Nov 13, 2024
1.1.4 Oct 29, 2024

#144 in Encoding

Download history 230/week @ 2024-10-29 20/week @ 2024-11-05 123/week @ 2024-11-12 14/week @ 2024-11-19 43/week @ 2024-12-24 527/week @ 2025-01-07 206/week @ 2025-01-14 17/week @ 2025-01-21 325/week @ 2025-01-28 617/week @ 2025-02-04 47/week @ 2025-02-11

1,020 downloads per month

GPL-3.0-only

3.5MB
1K SLoC

Rust 474 SLoC // 0.1% comments BASH 186 SLoC PHP 99 SLoC // 0.1% comments PowerShell 88 SLoC Elvish 82 SLoC C 45 SLoC // 0.1% comments Python 43 SLoC // 0.3% comments

Contains (ELF exe/lib, 715KB) cr16, (ELF exe/lib, 17KB) c16, (ELF exe/lib, 17KB) crc16

Cargo build Dependencies Docs License Downloads

eqr 1.7.2

Encode text into svg/png/jpg/terminal-format QR codes with optional logo

  • Error correction level can be set
  • Pixel size of the units can be set
  • Edge size can be set in units
  • Foreground and backgroundcolor can be set
  • A logo can be overlaid, with transparency
  • Main binary is qr, additional binary promptpay makes QR codes for use with the Thai PromptPay payment system.

Install

Install standalone single-binary

wget https://github.com/pepa65/eqr/releases/download/1.7.2/qr
wget https://github.com/pepa65/eqr/releases/download/1.7.2/promptpay
sudo chown root:root qr promptpay
sudo chmod +x qr promptpay
sudo mv qr promptpay /usr/local/bin/

Install with cargo

If not installed yet, install a Rust toolchain, see https://www.rust-lang.org/tools/install

Direct from crates.io

cargo install eqr

Direct from repo

cargo install --git https://github.com/pepa65/eqr

Static build (avoiding GLIBC incompatibilities)

git clone https://github.com/pepa65/eqr
cd eqr
rustup target add x86_64-unknown-linux-musl
cargo rel  # Alias in .cargo/config.toml

The binaries will be in target/x86_64-unknown-linux-musl/release/

Install with cargo-binstall

Even without a full Rust toolchain, rust binaries can be installed with the static binary cargo-binstall:

# Install cargo-binstall for Linux x86_64
# (Other versions are available at https://crates.io/crates/cargo-binstall)
wget github.com/cargo-bins/cargo-binstall/releases/latest/download/cargo-binstall-x86_64-unknown-linux-musl.tgz
tar xf cargo-binstall-x86_64-unknown-linux-musl.tgz
sudo chown root:root cargo-binstall
sudo mv cargo-binstall /usr/local/bin/

Install the binaries for linux-x86_64 (musl): cargo-binstall eqr

The binaries will be installed into ~/.cargo/bin/ which still needs to be added to PATH!

Usage

qr 1.7.2 - Encode text into svg/png/jpg/terminal-format QR codes with optional logo
Usage: qr [OPTIONS] [STRING]
Arguments:
  [STRING]  String to encode (can also be piped in)

Options:
  -o, --output <QR_PATH>         Output file (jpg/png/svg) [default: qr.png]
  -t, --terminal                 Output to terminal (never the logo)
  -l, --level <LEVEL>            QR error correction level (L: 7%, M: 15%, Q: 25%, H: 30%) [default: M]
  -p, --path <LOGO_PATH>         Path to logo (png/jpg)
  -P, --proportion <PROPORTION>  Logo proportion to the whole image (0..1) [default: 0.25]
  -e, --edge <EDGE>              Edge size (in unit blocks) [default: 2]
  -f, --fg <FG>                  Foreground RGB color (hex code) [default: 000]
  -b, --bg <BG>                  Background RGB color (hex code) [default: fff]
  -s, --scale <SCALE>            Size of unit block in pixels (1..255) [default: 8]
  -h, --help                     Print help
  -V, --version                  Print version
promptpay 1.7.2 - Make Thai PromptPay QR code
Usage: promptpay [OPTIONS] <PHONE>
Arguments:
  <PHONE>  Thai phone number (10 digits starting with 0)

Options:
  -o, --output <QR_PATH>  Output file (png) [default: PrompPayPHONE[_AMOUNT].png]
  -p, --path <LOGO_PATH>  Path to logo (png/jpg) [default: PromptPay logo]
  -a, --amount <AMOUNT>   Amount in Thai baht (no decimals/point or 2 decimals)
  -h, --help              Print help
  -V, --version           Print version

Changelog

Complete CHANGELOG.

License

GPLv3

Dependencies

~9–20MB
~293K SLoC