QRtool是一款使用Rust語言編寫的命令列工具,用於QR碼的編碼和解碼。本文將詳細介紹如何安裝、使用QRtool,以及一些高級功能。
安裝QRtool
QRtool可以透過多種方式進行安裝:從源碼安裝、透過包管理器安裝或者下載預編譯的二進制檔。
從源碼安裝
你可以使用Cargo來安裝QRtool:
cargo install qrtool
透過包管理器安裝
根據不同的作業系統,可以使用相應的包管理器進行安裝:
Homebrew(適用於任何作業系統)
brew install sorairolake/tap/qrtool
Nix(適用於任何作業系統)
nix-env -iA nixpkgs.qrtool
Arch Linux
pacman -S qrtool
openSUSE
zypper install qrtool
從二進制檔安裝
可以從release頁面下載適用於Linux、macOS和Windows的預編譯二進制檔。
使用QRtool
QRtool的基本使用非常簡單,下面是一些常用的命令範例:
編碼一個字串為QR碼
qrtool encode "QR code" > output.png
這樣會生成一個PNG格式的QR碼影像並保存在
output.png
檔中。
從影像中解碼QR碼
qrtool decode output.png
輸出結果將是QR碼中包含的字串:
QR code
高級用法
QRtool還支持生成SVG格式的QR碼、自訂QR碼顏色及格式、以及生成微型QR碼等高級功能。
生成SVG格式的QR碼
使用
-t
選項可以改變生成影像的格式,支持
png
(預設)、
svg
或者輸出到終端的UTF-8字串。
qrtool encode -o output.svg -t svg "QR code"
自訂QR碼的前景色和背景色
使用
--foreground
和
--background
選項可以改變生成影像的前景色和背景色,這些選項接受CSS顏色字串,如
brown
、
#a52a2a
或
rgb(165 42 42)
。預設前景色是黑色,背景色是白色。
qrtool encode --foreground brown --background lightslategray "QR code" > output.png
生成微型QR碼
使用
--variant
選項可以改變QR碼的變體,支持
normal
(預設)和
micro
(微型QR碼)。
qrtool encode -v 3 --variant micro "QR code" > output.png
支持的輸入影像格式
QRtool支持從多種影像格式中解碼QR碼,包括:
BMP
DDS
Farbfeld
GIF
Radiance RGBE
ICO
JPEG
OpenEXR
PNG
PNM
QOI
SVG
TGA
TIFF
WebP
需要註意的是,如果要支持從SVG影像中解碼QR碼,必須在編譯時啟用
decode-from-svg
特性。SVG影像會在掃描前被柵格化。
qrtool decode input.webp
# 或者
qrtool decode -t webp input.webp
生成Shell自動補全指令碼
使用
--generate-completion
選項可以生成Shell的自動補全指令碼。支持的Shell包括:
bash
elvish
fish
nushell
powershell
zsh
範例:
qrtool --generate-completion bash > qrtool.bash
與其他程式的整合
QRtool可以透過stdin讀取和透過stdout輸出,使其能夠與其他程式無縫整合。
最佳化輸出影像
QRtool生成的影像未經過最佳化。例如,輸出的PNG影像總是以32位元RGBA格式儲存。如果希望減少影像大小或最佳化影像,可以使用諸如
oxipng
或
svgcleaner
之類的最佳化器。
最佳化輸出PNG影像:
qrtool encode "QR code" | oxipng - > output.png
最佳化輸出SVG影像:
qrtool encode -t svg "QR code" | svgcleaner -c - > output.svg
讀取和寫入不受支持的影像格式
如果希望將編碼後的影像保存為PNG或SVG之外的影像格式,或者解碼不受支持的影像格式,可以使用如ImageMagick之類的轉換工具。
從stdin讀取Cargo.toml並將編碼結果保存為JPEG XL影像:
cat Cargo.toml | qrtool encode | magick png:- output.jxl
解碼此影像並打印結果:
magick output.jxl png:- | qrtool decode | bat -l toml
結論
QRtool是一個強大且靈活的工具,適合各種QR碼編碼和解碼任務,無論是簡單的字串編碼,還是高級的影像格式處理。希望本文能夠幫助你更好地理解和使用QRtool進行QR碼相關操作。
文章精選
點 擊 關 註 並 掃 碼 添 加 進 交 流 群
領
取
「Rust
語
言
」
學
習
資
料
關註公眾號並回復 「qrtool」 獲取源碼地址