從手機裡已經有的圖片掃描 QR Code。

代碼是以圖片的形式來的:一張郵件截圖、別人傳來的相片、你存下來的頁面。相機朝向的是螢幕的另一邊,所以幫不上忙。以下說明手機本身已經做得到什麼,以及圖片讀不出來時該怎麼辦。

相機和螢幕朝向相反的兩邊

顯示代碼的那支手機,正是你得拿來對著它的那支手機,而主鏡頭是朝著背面看的。沒有任何設定能把這件事反過來。

第二支手機,仍然只是一台對著螢幕的相機

螢幕是一個像素網格,相機感光元件是另一個網格。用其中一個去拍另一個,畫面上就會浮出一條條重複的紋路。

關於那些條紋,有兩件事和直覺相反。螢幕暗的時候最嚴重,因為暗的顯示器有更長的時間讓像素處於熄滅狀態。在明亮的房間裡又更嚴重,因為曝光時間太短,來不及把閃爍平均掉。

可能根本沒有一個距離是行得通的

手機的主鏡頭大約在幾公分處就對不到焦。想多拿一點像素而靠近,畫面就糊掉;退開到對得上焦,代碼又小到解不開。

手機自己本來就做得到的事

兩個平台本身都已經能從圖片裡讀出代碼,而且都沒怎麼提這件事。

在 iOS 上,在「照片」裡長按那個代碼

在「照片」裡打開那張圖片,長按那個代碼,手機就會把它找到的東西給你。前提是先開啟「原況文字」,位置在「設定」>「一般」>「語言與地區」,而且不是每個地區或語言都有。

這項功能是 iOS 16 才有的,不是 iOS 15;iOS 15 帶來的是給一般文字用的「原況文字」。Apple 從來沒有把這條路線寫進文件。它關於掃描 QR Code 的說明,只提到相機和一個要你自己加進「控制中心」的控制項,從來沒提過已儲存的相片。

在 Android 上,就地把代碼圈起來

「圈選搜尋」就是為螢幕上已經有的代碼而設計的路線。長按主畫面按鈕或導覽操作條,然後把代碼圈起來。它讀得出郵件、PDF、相片或影片裡的代碼。

它需要 Google App,而且助理要設成 Google。Android 17 上其餘的方式都是即時取景相機,包括 Pixel 的相機App,而它在人像模式或錄影模式下不會掃描。各家廠商的介面又各有不同。

「視覺智慧」不是幹這件事的工具

在 iOS 26 上,它可以對螢幕上的任何東西動作,聽起來正是你要的。但它不是。它做的事沒有一項碰得到 QR Code 或條碼;它需要 iPhone 15 Pro 或更新的機型;而且它只有十六種語言,還在測試版。

那些路線到哪裡就走不下去了

底層的引擎讀得懂一維條碼,但上面那層按鈕預設你要的是一個連結:兩個平台提供的每一個動作,說穿了都是「打開這個網站」的某種版本。而商店卡是一個單純的 EAN-13,裡面沒有任何網址。

還有一些內容根本不是連結。Wi-Fi 憑證是一串字;eSIM 啟用碼也是,而 iPhone 只有透過相機才會對它動作,從「照片」裡就不會。

而且什麼都不會留下。你點了連結,面板收起來,下星期你又在翻同一張截圖。Apple Wallet 幫不上忙,因為票券必須由商家發行並簽章: Apple Wallet 與 Google Wallet 裡的卡片

這正是這個App存在的全部理由:存成卡片的代碼,在你第二次需要它時還在那裡,不必再去翻找。ScanKeeper 在 iOS 和 Android 上都免費。

最短的那條路,根本不會存下圖片

到目前為止的每一條路線,前提都是圖片已經在某個地方:在你的圖庫裡,在你留下的檔案裡。多數代碼不是這樣來的。它們是包在某個東西裡面來的——一封郵件、一段對話、一封訂位確認信、一個你正開著的頁面——而先存一份副本這個步驟,你之所以要做,只是因為工具要求你做。

所以別存它。不管圖片現在在哪個App裡,那個App都有分享按鈕,而 ScanKeeper 就排在那份清單裡,和通訊App擺在一起。

iOS 分享面板開在一封優惠券郵件的截圖上方,可選的App裡有 ScanKeeper
就是你平常拿來傳給別人的那一排。

在 iOS 上,命名不必離開原來的App

一個面板會蓋在你正在讀的東西上面:圖片裡代碼亮著、其餘部分變暗,一個填名稱的欄位,還有「儲存」。接著面板收起來,你人還在那封郵件裡。ScanKeeper 從頭到尾沒有打開,這不是什麼花招——iOS 不允許分享擴充功能打開自己的App,所以凡是它能就地做完的,它就在那裡做完。

如果一張圖裡有好幾個代碼,每個都會輪到一次,並附上一個計數器和一個「略過」,讓你放掉不要的。用叉叉關掉它是拒絕,不是延後:還沒儲存的都會被丟掉,下次打開App時也不會有東西在那裡等你。

在 Android 上,App 會打開,做的是同一件事

Android 上沒有對應的面板,所以 ScanKeeper 會跑到前景,顯示你原本會從「操作」進入的同一個匯入畫面。結果完全一樣,只是路上多了一個畫面;如果你兩種手機都用過,本來以為它們一致,這點值得先知道。

票券可以直接以 PDF 交過去

附件不必在半路上變成截圖。直接把檔案本身送過去,它的每一頁都會在裝置上畫成圖片,然後像其他圖片一樣讀取——這就是完整尺寸的代碼,和被凍結在當時螢幕縮放比例上的代碼,兩者的差別。

這些路線沒有一條會動到原件。送過來的東西會先複製一份,被讀取的是那份副本,事後副本就丟掉——沒有任何東西會寫回你的圖庫、你的郵件或你的檔案裡。

圖片讀不出來的時候

每個模組約三個像素

QR Code 是由模組——組成它的那些小方格——排成的網格。每個模組約三個像素時,解碼才算可靠;兩個像素是規範寫的下限,不是你該瞄準的數字。

所以一個二十五個模組寬的代碼,橫過來大約需要七十五個像素;而九十五個單位寬的 EAN-13,至少需要一百九十個。

留白也是代碼的一部分

把圖裁得太緊,是把一個本來好好的代碼弄壞最常見的方式。QR Code 四邊各需要四個模組寬的留白。EAN-13 左邊要十一個模組寬、右邊要七個,所以裁掉左邊的代價更大。

對比度,以及百分之三十的迷思

白底配淡灰,直接就過不了分級標準;代碼後面墊一張相片或漸層,會一個模組一個模組地毀掉對比。深色配淺色才可靠。

所謂 QR Code 可以損失百分之三十,指的是碼字的比例,不是面積的比例,而且三個角落的方塊根本不受保護。中間放一個標誌撐得住;拇指蓋住一個角就不行。

一維代碼完全沒有糾錯能力。檢查碼看得出有錯,卻修不了錯,所以橫過條紋的一道反光,在 QR Code 那裡不痛不癢,在這裡卻是致命的。

什麼都讀不出來的時候

圖片已經救不回來的時候,代碼底下那串數值通常還救得回來。

使用相機、匯入圖片或手動輸入值。三種方式都會建立同樣可編輯的卡片。

如果相片圖庫裡滿滿都是,還有一條更快的路: 批次匯入

圖片裡的代碼,不是每個都值得留

相片圖庫不用你開口,就會自己收集這些東西。

值得取名字的那些

任何以後還會被要求出示的東西:郵件裡的會員條碼、健身房或圖書館的號碼、送貨通知裡的置物櫃代碼、印著日期的優惠券。

圖片裝不住的那些

會輪替的票券條碼每十五秒重新產生一次,截圖是過不了閘門的。只要代碼會動、會倒數,圖片就沒有用。已儲存的代碼能撐多久,本身是另一個題目: 條碼整理工具

如何從截圖或已儲存的相片掃描 QR Code

  1. 01

    打開掃描器,用相簿選項

    在卡庫裡點一下掃描按鈕,再點最上面的相片控制項。沒有東西需要你去對準,也沒有什麼攔著你一次選好幾張圖片。

    顯示印刷條碼並帶有相簿與批次匯入控制項的 ScanKeeper 相機掃描器
    選擇同一手機上的現有圖片。
  2. 02

    檢查跑出來的結果

    ScanKeeper 在裝置上讀取圖片,並把辨識出的格式和解出的數值並排顯示。

    顯示已辨識 EAN-13 值和卡片名稱的新建條碼表單
    檢查辨識出的類型和編碼值。
  3. 03

    把它存成一張卡片

    取一個你會說出口的名字,然後儲存。卡片會保留數值和格式。

    顯示已辨識 EAN-13 值和卡片名稱的新建條碼表單
    一個月後,一個名稱勝過一串數字。
  4. 04

    再打開它時,不需要那張圖片

    已儲存的卡片會顯示代碼、它的數值和一個複製按鈕、格式,以及你打開過它幾次。

    A saved ScanKeeper card showing its barcode, encoded value, and format
    解出來的數值,隨時可以複製。

已儲存的代碼做得到、而圖片做不到的事

無需第二部手機

分析同一裝置上郵件、訊息、PDF 截圖或已儲存相片中的代碼。

裝置端辨識

圖片掃描在本機完成,不會將條碼傳送到 ScanKeeper 伺服器。

一個數值,而不只是一個連結

不含網址的代碼,會以一個你讀得懂、也複製得走的數值回來。

開始前須知

可以掃描同一手機截圖中的QR Code嗎?

可以,而且你甚至不一定要先存下來。從圖片原本所在的那個App直接分享給 ScanKeeper,或者存下來,之後再用相簿選項挑它。兩條路都不需要第二台裝置。

為什麼相機讀得出這個代碼,存下來的相片卻讀不出來?

即時取景的相機有很多次機會,可以移動、重新對焦、換角度,直到某一格畫面解得開。已存下的圖片只有一次機會,畫質就停在拍下的那一刻。

ScanKeeper 能從相片讀取QR Code和條碼嗎?

可以。ScanKeeper 支援 QR、EAN、UPC、Code 128、PDF417、Data Matrix 和 Aztec 等圖片格式。

可以讀取 PDF 裡面的 QR Code 嗎?

直接把 PDF 交過去,不要交它的截圖。它的每一頁都會在裝置上畫成圖片,然後像其他圖片一樣讀取,這樣代碼保持在原來的完整尺寸,而不是被凍結在你當時的縮放比例上。

如果圖片裡不只一個代碼呢?

每一個都會依序輪到你,輪到的那個亮著,圖片其餘部分變暗。一封同時帶著票券代碼和貴賓室通行證的確認信,會把兩個都給你,還附上一個「略過」,讓你放掉不要的那個。

活動門票的截圖能讓我過閘門嗎?

通常不行。每隔幾秒就重新產生的條碼,設計上就是要讓靜態圖片變得毫無用處,而且有些票券App乾脆直接封鎖截圖。

如果那張圖片根本沒有東西讀得出來呢?

自己打進去。條碼底下印的號碼就是那個代碼,用正確的格式手動輸入,做出來的卡片和掃描出來的一模一樣。

圖片掃描需要聯網嗎?

不需要。圖片分析在裝置上運行,無需帳號或網路。

獲取App

不用註冊、不用信箱、不用密碼。裝好App就開始加卡片。

在 App Store 下載在 Google Play 獲取
或者用手機相機對著這個,讓它讀出代碼。