ToolAct工具行動

二維碼解析

線上識別和解碼二維碼圖片,支援拖曳上傳、貼上圖片,純瀏覽器端處理保護隱私

上傳二維碼圖片

拖曳二維碼圖片到此處

支援 PNG、JPG、GIF、BMP、WebP 等常見圖片格式

也可以使用 Ctrl+V 貼上剪貼簿中的圖片

什麼是二維碼解析?

QR Code 解碼工具用來讀取圖片中的 QR Code,並提取其中儲存的資料。結果可能是網址、純文字、Wi-Fi 設定、聯絡人資訊、付款參照或其他編碼字串。它適合在開啟 QR Code 前先查看內容,也適合從截圖、文件、海報或客服回報圖片中提取資訊,排查手機掃描失敗的原因。需要注意的是,能被解碼不代表內容安全;尤其是連結,應先確認網域和跳轉目標,避免誤入釣魚頁、過期資源或異常重新導向。圖片辨識會在瀏覽器本地完成。

使用說明

使用方式

  1. 點選上傳區選擇 QR Code 圖片,或拖曳圖片
  2. 也可以使用 Ctrl+V(Mac 為 Cmd+V)從剪貼簿貼上圖片
  3. 工具會自動偵測並解碼 QR Code 內容
  4. 解碼結果會顯示在下方,並自動判斷內容類型(網址或文字)
  5. 點選「複製結果」按鈕將解碼內容複製到剪貼簿

解碼提示

  • 使用清晰的圖片,確保 QR Code 完整可見,且周圍保留足夠的留白邊距,以利偵測。
  • 解碼後的連結請謹慎處理:先預覽內容並確認網域,再決定是否開啟不熟悉的 QR Code 網址。

使用場景

從上傳或貼上的圖片解碼二維碼拖放圖片、選取檔案或從剪貼簿貼上圖片,工具會將其繪製到隱藏的 canvas 上進行讀取。當你有截圖、照片或已儲存的二維碼圖片但身邊沒有手機掃描器時,這個功能非常實用。
將 URL 和純文字結果分開處理解碼後,若內容能被瀏覽器 URL 建構子解析,就會被歸類為 URL;否則視為純文字。URL 結果會有在新分頁開啟的操作,所有結果都可複製並顯示字元數。
在設計工作中驗證二維碼的可讀性由於解碼器直接從圖片像素讀取,可用來驗證經過縮放、變色、截圖或壓縮後的二維碼是否仍能被掃描。讀取失敗時會產生明確的「未偵測到二維碼」或解碼錯誤,而非靜默輸出,方便在品牌審查中並排比較兩個設計方案。
讀取較長的 Wi-Fi 或 vCard 內容解碼後的 Wi-Fi 字串會顯示圖片中的 SSID、密碼和安全類型,無需手機相機即可使用,適合驗證已列印的訪客網路卡片。vCard 結果可以複製後貼入聯絡人表單進行手動匯入。
在開啟連結前先檢查二維碼內容養成先閱讀解碼後的 URL 而非直接用手機掃描圖片的習慣,因為二維碼可能隱藏短連結、釣魚頁面或過期的重新導向。解碼後的純文字結果沒有點選操作,比一鍵跳轉更安全。現代 Chromium 瀏覽器提供的 BarcodeDetector API 速度快但無法良好處理 Micro-QR 或受損的二維碼,因此頁面在 BarcodeDetector 缺失時會回退到 JS 函式庫。M、Q、H 級的 Reed-Solomon 糾錯仍可救回模糊的照片,但高密度或低對比的二維碼經常失敗,需要在更多光線和更少傾斜的情況下重新拍攝。Micro-QR 碼只有一個角落的位置標記,屬於完全不同的家族,通常需要專用掃描器。

技術原理

QR Code 解碼是一個多階段的影像處理流程,涵蓋定位圖中的碼、校正透視變形、二值化為黑白、讀取模組格線、套用糾錯以及按編碼模式解碼資料。本工具使用 jsQR 函式庫,整條流程以 JavaScript 在瀏覽器主執行緒上完成。 第一階段是定位三個定位圖案——QR Code 左上、右上、左下角的 7x7 三層方中方式標記。jsQR 掃描影像中符合 1:1:3:1:1 比例的黑白像素交替序列(此為定位圖案截面特徵),不受旋轉影響。三個定位圖案確認後,它們的質心就確定了碼的邊界四邊形。 透視校正透過四個角點計算出的單應性矩陣,將四邊形映射到正方形格線。這一步至關重要,因為 QR Code 很少被正面拍攝——校正能還原扭曲,讓每個模組(代表一個位元的黑色或白色小方格)落在規則的格線上。模組大小由定位圖案尺寸和版本號決定,版本號從定位圖案旁的格式資訊條帶讀取。 影像二值化將灰階像素值轉換為純黑白。jsQR 採用局部閾值法:不是用單一全域閾值(在不均勻光照或陰影下會失效),而是對影像小區域分別計算閾值,使其能抵抗智慧型手機照片中常見的漸變和暗角。 糾錯使用 ISO/IEC 18004:2015 規定的 Reed-Solomon 碼。QR Code 支援四個糾錯等級:L(約 7% 恢復)、M(約 15%)、Q(約 25%)和 H(約 30%)。資料碼字與糾錯碼字以區塊交錯排列;jsQR 進行症候計算並套用 Berlekamp-Massey 演算法,在碼的額定容量內定位並修正錯誤。若損壞超過糾錯等級,解碼會失敗而不會傳回損壞資料。 最後,解碼後的位元串流根據前四個位元中的編碼模式指示進行解讀:數字模式(0001,每 3 位數 10 位元)、字母數字模式(0010,每 2 字元 11 位元)、位元組模式(0100,每字元 8 位元,通常為 UTF-8 或 Latin-1)、漢字模式(1000,每字元 13 位元,使用 Shift JIS)或 ECI 模式(0111,擴展通道解讀,用於指定字元集)。工具會顯示解碼字串,並自動判斷其為 URL(嘗試 new URL() 解析)或純文字。

  • 定位圖案偵測:jsQR 掃描行列中符合 1:1:3:1:1 比例的黑白像素交替序列——三個大致呈直角排列的此類圖案可確認 QR Code 的存在與方向,不受旋轉影響。
  • 透視校正:從偵測到的四個角點計算單應性矩陣,將傾斜的四邊形映射到正方形格線——這一步至關重要,因為實際拍攝的照片很少是正面的。
  • 自適應二值化:局部閾值法將影像分成小區域並分別計算閾值,使解碼器能抵抗不均勻光照、陰影和漸變——這些情況下全域閾值會失效。
  • Reed-Solomon 糾錯(ISO/IEC 18004):四個等級(L/M/Q/H)提供 7%–30% 的資料恢復能力——Berlekamp-Massey 演算法定位錯誤位置,Forney 演算法計算修正量;若損壞超過等級容量,解碼會乾淨地失敗。
  • 編碼模式偵測:前四個資料位元指示模式——數字模式(0001,適用於數字高效編碼)、字母數字模式(0010,適用於 A-Z 0-9 及符號)、位元組模式(0100,適用於任意 UTF-8/Latin-1 資料)、漢字模式(1000,適用於 Shift JIS)和 ECI 模式(0111,用於指定字元集)。
  • 版本與模組格線:QR Code 版本從 1(21x21 模組)到 40(177x177),每增加一個版本每邊增加 4 個模組——版本號從定位圖案附近的格式資訊條帶讀取,模組數量決定取樣格線密度。
  • 瀏覽器端執行:影像被繪製到隱藏的 Canvas 元素上,getImageData() 提取原始 RGBA 像素緩衝區,jsQR 完全在瀏覽器主執行緒上處理——影像資料不會上傳到任何伺服器,Canvas 在解碼完成後由垃圾回收機制清除。

範例

URL QR code

掃描內容: https://example.com
類型:        URL
動作:      掃描器確認後在系統瀏覽器中開啟連結

純文字 QR code

掃描內容: This is text content
類型:        文字
動作:      掃描器將文字複製到剪貼簿,或顯示在結果頁面中

WiFi 認證 QR code

掃描內容: WIFI:T:WPA;S:NetworkName;P:Password;;
類型:        WiFi (WPA2)
動作:      支援此格式的手機會跳出「連線到 NetworkName?」提示,並使用該密碼加入網路

vCard 聯絡人名片

掃描內容: BEGIN:VCARD\nVERSION:3.0\nFN:Jane Doe\nTEL:+1-555-0142\nEMAIL:jane@example.com\nEND:VCARD
類型:        聯絡人名片
動作:      手機會根據解析出的欄位提示建立新的通訊錄項目

常見問題

圖片會被上傳以便解碼嗎?

不會。解碼是在你的瀏覽器中透過 WebAssembly 或純 JS 進行。圖片位元組是在本機讀取的,不會傳送到任何伺服器。

支援哪些輸入方式?

可以上傳檔案、從剪貼簿貼上圖片,或直接拖放圖片檔。圖片會在你的瀏覽器中處理,絕不會上傳到任何伺服器。

解碼後會傳回什麼?

原始的解碼文字。本頁會偵測結果是 URL 或純文字,並顯示對應的標籤。若是 URL,會提供「開啟 URL」按鈕。

為什麼我的 QR 碼解不開?

常見原因:模糊、對比度不足、反光、透視傾斜,或是條碼被部分遮擋。請靠近裁切、增加亮度、把手機與表面保持垂直且穩定。錯誤等級 L 的 QR 碼幾乎無法忍受任何損傷;H 級則可承受相當程度的遮擋。

可以解螢幕截圖與 PDF 中的 QR 碼嗎?

螢幕截圖通常都能順利解碼,因為對比完美又沒有透視變形。對於 PDF,請先把 QR 區域擷取成圖片再上傳。

我應該打開 QR 碼裡的每個 URL 嗎?

不應該。QR 碼是已知的釣魚途徑(俗稱「quishing」),因為 URL 被藏在圖像中。打開前請先檢查解碼出的 URL——本頁會顯示完整 URL,方便你看清網域。要小心拼字相近的網域、IP 位址,以及隱藏真實目的地的縮網址。

可以一次解一張圖裡的多個 QR 碼嗎?

本頁每張圖只偵測一個 QR 碼。若一張圖裡有多個碼,請各自裁切後分別上傳,可獲得最穩定的結果。