繁體中文

如何製作可實際掃描的二維碼

糾錯、安靜區域、對比度和列印尺寸:這四件事決定了 QR 碼在紙上是否有效或悄無聲息地失效。

二維碼是一張資料圖片,它在某些方面是脆弱的

掃描器不會像人讀取文字那樣 "read" QR 碼。它將相機影像轉換為黑白像素,找到角落的三個大方塊,計算出網格,然後讀取每個單元格。一切對二維碼有利或不利的因素都會回到這個過程:角落必須是可找到的,網格必須是規則的,每個單元格必須是明確的亮或暗。

這就是為什麼程式碼在螢幕上看起來很完美,但一旦列印到選單上就完全失敗,以及為什麼「使其更小以適應」是破壞程式碼最常見的方法。

糾錯:保險,而非自由空間

QR 碼攜帶冗餘資料,因此當部分圖片損壞時它們仍然可以解碼。有四個等級:L 恢復符號的約 7%,M 約 15%,Q 約 25%,H 約 30%。

權衡是尺寸。更高的冗餘意味著更多的模組可用於相同的內容,而更多的模組意味著在給定的列印尺寸下每個模組的物理尺寸更小,這會使掃描變得更困難而不是更容易。提高水平並不意味著就自動更安全。

  1. 在螢幕上或保持平整的乾淨紙張上:L 或 M 就足夠了。
  2. 在需要處理、折疊或潑濺的物品上——菜單、會員卡、包裹:問。
  3. 當您打算在中心放置徽標,或表面確實充滿敵意時:H.
  4. 如果程式碼在較高層級變得非常密集,請縮短內容而不是進一步提高等級。

安靜區是程式碼的一部分

二維碼周圍的空白邊距不是裝飾。這個規範要求每側至少有四個模組的空白空間,掃描器真正依賴它來找到符號的邊緣。

這是 QR 設計中最常被忽略的要求。與邊框、照片或文字區塊對接的程式碼會失去其安靜區域,並可能完全停止工作 - 而且失敗看起來是隨機的,因為它取決於相機碰巧捕捉到的內容。

該工具預設有四個模組,如果您減少它,則會向您發出警告。如果佈局沒有留出邊距的空間,請縮小程式碼而不是修剪邊距。

對比比顏色更重要

掃描器對影像進行二值化,因此重要的是程式碼與其背景之間的亮度差異,而不是顏色看起來是否令人愉悅地不同。兩種顏色在肉眼看來可能明顯不同,但轉換為灰階後幾乎完全相同。

白底黑字的對比為 21:1。目標至少為 7:1;下面關於 4:1 程式碼在紙上和光線不好的情況下開始失敗,這個工具會警告您。當您變更顏色時,預覽旁邊的即時對比度圖會更新。

使程式碼比其背景更暗。許多掃描器只尋找暗光模式,而反向代碼(暗場上的光模組)就像在設備上拋硬幣一樣。如果您需要深色設計的程式碼,請將其放在淺色面板內。

避免程式碼中出現漸變,並注意透明背景:其後面的任何內容都必須滿足相同的對比要求。

根據掃描距離調整大小

一個廣泛使用的經驗法則是,程式碼的寬度應該大約是掃描距離的十分之一。在一定距離處讀取的代碼(例如 30 公分)希望寬度約為 3 公分。從三米掃描的海報大約需要 30 公分。

問題的另一半是模組大小。每個模組大約低於 0.4 毫米,普通手機相機開始陷入困境,廉價的熱敏印表機會將相鄰模組塗抹在一起。較短的內容意味著更少的模組,這意味著在相同的整體尺寸下每個模組都更大——這就是為什麼保持有效負載較短比任何其他單一更改更有幫助。

選擇正確的輸出格式

將要列印的任何內容匯出為 SVG。它是向量,因此可以縮放到任何尺寸並具有完美銳利的邊緣,這正是設計師或印表機所想要的。

為螢幕、文件和任何點陣圖更容易的地方匯出 PNG。選擇較大的像素大小:該工具將模組大小四捨五入為整數像素,因此每個模組都是相同的,這避免了程式碼按分數縮放時出現的不均勻模組。

匯出後切勿放大 PNG QR 碼。相反,將其重新導出得更大——插值模糊了模組邊緣,這正是掃描器所需的清晰效果。

在提交之前進行測試

在真實材料上以真實尺寸列印一份,然後用多部手機(最好是舊版 Android 手機和最新的 iPhone)掃描它,並根據代碼實際存在的光線進行掃描。在檯燈下的辦公桌上可以使用的代碼在窗邊的桌子上可能會失敗。

如果您將徽標放置在中心,請使其保持較小,使其遠離三個角落的方塊,並測試結果,而不是假設糾錯會覆蓋它。

常見問題

我可以把我的標誌放在中間嗎?
通常,是的,如果您使用較高的糾錯等級並將徽標保持在大約 20% 的區域下方,請遠離三個角落查找器圖案。該工具不會覆蓋徽標,因為安全地執行此操作需要進行只有您才能進行的目視檢查。匯出 SVG,將徽標放入設計工具中,然後測試結果。
為什麼我的程式碼在設計師使用後就停止運作了?
通常,安靜區域會被裁剪掉,程式碼會被縮小到模組足夠大的程度,或者會被重新著色為對比度太小的東西。以書面形式向他們提供 SVG 和四模組邊距要求。
較長的連結是否會使程式碼更難掃描?
是的。更多的內容意味著更多的模組,因此在固定的物理尺寸下,每個模組都更小。使用有效的最短地址 - 但請注意,此工具故意不會為您縮短鏈接,因為這會將第三方置於您的代碼與其目的地之間。
預設情況下我應該使用哪個糾錯等級?
對於大多數用途來說,M 是一個合理的預設值。對於任何處理或列印較小的東西,請移至 Q,只有當您覆蓋部分程式碼或表面確實很粗糙時,才移至 H。

該工具不會做什麼