先說結論
開啟 QR Code 與條碼產生,把連結貼進去,等級保持 M,留白保持 4,下載那個 SVG。印出來至少兩釐米寬,用啞光材質,深色在淺色上。訂一千份之前,先拿一部不是你自己的手機,掃一下印出來的那張。
絕大多數情況到這裡就完了。這一頁剩下的部分是給例外準備的:要經得起反覆摸的碼、中間要放 logo 的碼、要貼在很小的東西上的碼,還有一個特別容易做錯、又得等上一年才發現的決定。
QR Code 裡到底裝著什麼
一串字元,就這麼點東西。掃一個 QR Code,等於把一段文字遞給手機。之後開啟網頁也好,連上網路也好,問你要不要存聯絡人也好,都是手機認出了這段文字的樣子,然後主動提議照著辦。
所以根本沒有「Wi-Fi QR Code」這麼一個碼種。有的只是一個普通 QR Code,裡面裝著 WIFI:T:WPA;S:My Network;P:the password;;,而近十年出的手機都認得它。產生器把拼好的那串字元擺出來給你看,正是為了這個:碼沒做出你以為它會做的事時,值得看的只有那串字元。
這也意味著,QR Code 一旦印出來就改不了,不會往家裡打電話,也不會過期。除非有人往裡面塞了一個指向他們自己伺服器的連結,而那正是本頁最後一節要說的事。
第一件事:糾錯等級
QR Code 在資料旁邊還帶著一組校驗碼字,演算法讓讀取器能把沒看清的部分重建出來。一個缺了角的碼還能掃出來,靠的就是它。校驗碼字放多少,就是等級,一共四檔:
- L,大約 7% 的碼可以丟。
- M,大約 15%。
- Q,大約 25%。
- H,大約 30%。
糾錯多不是白來的。校驗資料要擠在同一個方塊裡,所以同樣一段文字,H 級的碼比 L 級更大也更密。粗略地說,從 L 換到 H,同一串字元的模組數會翻一倍,而模組越密,鏡頭越難分辨。這裡有一筆實實在在的取捨,怎麼選,看這個碼要去哪裡。
L 給螢幕用:投影片裡、郵件裡、網頁上的碼。沒什麼東西會去損壞它,而每多一個模組,隔遠了就更難讀。
M 是預設值,也是大多數印刷品的正確答案。會被人拿在手裡翻兩下的紙、傳單、名片。
Q 和 H 留給會被折騰的碼:每天要擦一遍的選單、貼在車間機器上的標籤、板條箱上的標貼、曬得到太陽的櫥窗裡的碼。中間能放 logo,也得靠 H,下面還會講。
第二件事:留白,它是碼的一部分
QR Code 周圍那圈白,不是內邊距,也不是設計選擇。讀取器靠它判斷這個圖形到哪裡為止。規範要求四邊各留四個模組的靜區,而一個被裁到邊的碼,是印出來的碼失靈最常見的單一原因。
這話值得說得直白些,因為裁掉它實在太順手了。碼看起來周圍白得太多,於是在版式裡被裁了一刀,或者被扔到一塊一直鋪到方塊邊上的彩色底上,或者乾脆放到一張照片上。這幾種做法,每一種都把讀取器本來要用的那條邊界拿走了。
連著留白顯得太大,那就把碼做小。別動那圈留白。
第三件事:印多大
經得起現實檢驗的那條經驗法則是一比十:碼的寬度,大約要有掃描距離的十分之一。
- 名片或者選單,30 釐米處掃:兩釐米左右。
- 兩米外掃的海報:二十釐米左右。
- 五米外掃的公交站牌、櫥窗:五十釐米左右。
兩釐米是底線,不是目標。小到 1.5 釐米以下,印得再好,普通手機也開始吃力,因為單個模組的尺寸已經逼近它鏡頭裡一個畫素了。
文字少,模組就少;模組少,同樣的印刷尺寸就能在更遠處讀出來。所以碼該指向 example.com/x,而不是一個末尾掛著一百個字元跟蹤引數的網址。
另外,印刷請用 SVG。QR Code 是由邊緣構成的,而 PNG 只有固定數量的畫素來拼這些邊緣,放大之後每條邊都發虛,而發虛恰恰是掃描器最頭疼的。SVG 是以指令表達的方塊,印在名片上和印在廣告牌上一樣銳利。
顏色、對比度,以及常見的兩個錯
讀取器量的是深色模組和淺色模組之間的差別,所以對比度就是全部。有兩件事經常出錯:
深底上的淺色碼。看起來是很搶眼,可相當多的讀取器直接不認:它們找的是淺底深圖,不會去試反相。有些會試。而你的客戶手上是哪一種,你根本不知道。
差別不夠大。白底中灰,或者兩個分量相近的品牌色,在螢幕上量著沒問題,一旦印上紙,油墨擴散加上手機的自動曝光,就失靈了。真要給碼上色,就讓深的那部分深得夠真。
凡是會在燈下被掃的東西,啞光勝過亮面,而這兩者又都勝過印在一張照片上。要把碼放到彩色底上,透明背景很好用,但記得看清最後墊在它後面的到底是什麼,深底上的透明碼,無非是上面那第一個錯多繞了幾道。
中間放一個 logo
這行得通,而且靠的正是糾錯,不是繞開糾錯。H 級下大約 30% 的模組被毀掉,碼依然讀得出來,所以一個蓋住比這少一些、又正好落在中間那塊沒有定點陣圖形的地方的 logo,屬於讀取器修得回來的損傷。
有三點得守住。用 H 級。logo 控制在面積的五分之一以內,離理論上限留出一大截,因為吃掉你餘量的不只印刷這一件事。還有,四角那三個大方塊和它們附近那些小的,絕對不能蓋:讀取器一上來就是靠它們找到這個圖形、確定方向的,再多的糾錯也重建不出來。
然後拿真手機測。加了 logo,一個碼就從「總是能用」變成了「在這麼多餘量下能用」,而想知道還剩多少餘量,只能去試。
最容易讓人後悔的那個決定:靜態還是「動態」
搜 QR Code 產生器,出來的結果大半想讓你註冊個帳號,因為他們賣的是動態碼。動態碼裡裝的不是你的連結,是一個指向產生方自己伺服器的短連結,再由那邊跳到你這裡。
它換來的東西是真的:印出來之後你還能改這個碼指向哪裡,而且每一次掃描都有計數。印量六位數的推廣活動,這錢花得值。
它的代價也是真的,而且值得事前知道,別等事後:
- 他們不做了,你的碼就廢了。服務關停、域名到期、免費額度用完,你印出去的每一個碼都會死掉,而那時它們已經躺在一萬張選單上了。
- 每一次掃描都成了別人的資料。那個跳轉看得到每一個掃碼的人的 IP 位址、時間和裝置。
- 那個連結是他們的,不是你的。掃的人會看見一個陌生域名一閃而過,而這正是大家被反覆叮囑要提防的東西。
折中辦法一分錢都不用花:用你自己域名上的一個短網址做靜態 QR Code,跳轉由你自己來做。改目的地的能力還在,統計資料也還在,而這個碼的任何一部分,都不取決於一家你素未謀面的公司明年還在不在。
這裡的產生器只做靜態碼,也沒有帳號可註冊。你打進去什麼,碼裡就裝什麼。
印一千份之前
掃一下這個碼。別掃螢幕上那個,掃印出來的打樣,在它將要待的那個地方,用一部不是你做它時用的手機。這要花一分鐘,卻能一網打盡這一整頁講的所有毛病:被版式吃掉的留白、漏了 https:// 的連結、在紙上量出來完全不同的顏色、在桌上管用、上了牆就不管用的印刷尺寸。
還要看掃完之後會發生什麼。掃出來是掃出來了,可開啟的頁面在手機上根本沒法讀,那也是個失敗的碼。
這些事一樣都不用上傳
QR Code 就是對一串字元做算術。沒有檔案要送,也沒有哪件事是伺服器能做而瀏覽器做不了的,所以這裡的工具全都在你自己的機器上完成,拔了網線照樣能用。
這一點比聽起來要緊,因為人們往 QR Code 裡塞的是什麼東西。Wi-Fi 那個格式最常見的用途,就是把一個網路的真實密碼打進一個網頁裡。那個頁面有沒有地方可以把它送出去,值得先弄清楚。