條碼解析
線上識別和解碼條碼圖片,支援拖曳上傳、貼上圖片,純瀏覽器端處理保護隱私
拖曳條碼圖片到此處
支援 PNG、JPG、GIF、BMP、WebP 等常見圖片格式
也可以使用 Ctrl+V 貼上剪貼簿中的圖片
什麼是條碼解析?
條碼解析是一種將條碼圖片還原為原始內容的技術工具。透過上傳包含條碼的圖片,系統會自動識別並解碼其中儲存的數字或文字資訊。支援 CODE128、EAN-13、EAN-8、CODE39、UPC-A、UPC-E、Codabar、ITF 等多種常見一維條碼格式,同時相容 QR Code、Data Matrix、PDF417、Aztec 等二維碼格式。本工具完全在瀏覽器端執行,圖片不會上傳到任何伺服器,確保您的隱私安全。
使用方法
使用方法
- 點選上傳區域選擇條碼圖片,或將圖片拖曳至該區域
- 您也可以使用 Ctrl+V(Mac 為 Cmd+V)從剪貼簿貼上圖片
- 工具會自動偵測並解碼條碼內容
- 解碼結果會顯示在下方,包含條碼格式與內容類型
- 點選「複製結果」按鈕複製解碼內容,若為連結可直接開啟
解碼提示
- 請使用清晰、高對比且完整顯示條碼的圖片;模糊、反光、裁切及強烈的透視變形都會降低辨識準確度。
- 若解碼出 URL 或產品代碼,請在用於正式記錄前先確認目標網址或識別碼是否正確。
使用場景
技術原理
一維條碼(UPC、EAN、Code 39、Code 128、ITF、Codabar)是由平行條與空格組成的序列,其寬度編碼了數字、字母或完整的 ASCII 範圍。二維條碼(QR Code、Data Matrix、PDF417、Aztec)則是在靜區上排列的二維模組(格子)圖案,通常在角落有三個定位圖案用於方向辨識。條碼解碼是反向的過程:影像 → 前處理 → 定位符號 → 測量條/空格寬度(或取樣二維網格) → 查詢編碼表 → 套用校驗碼驗證結果。 影像處理流程至關重要。來源影像經過灰階轉換(亮度 = 0.299R + 0.587G + 0.114B,Rec. 601 權重),然後進行全域或自適應閾值處理(Otsu 方法選取最大化類間變異數的閾值,適用於大多數光線充足的掃描;Sauvola 自適應閾值能更好地處理不均勻光照)。邊緣偵測(Sobel 核:3x3 的 Gx 和 Gy)找到垂直條的轉換;對這些線條進行 Hough 轉換可得出方向;連通元件分析則找出符號的邊界矩形。靜區(符號周圍的必要空白邊距,QR Code 為 X 尺寸的 10 倍,Code 128 為條寬的 9 倍)在符號被接受為有效候選之前會被驗證。 對於一維碼,解碼器測量 X 尺寸(最窄條的寬度,即單位長度),並將條-空格寬度讀為 X 的倍數。一個 Code 39 字元由 9 條 + 9 空格組成(其中一個是字元間隔);9 個元素中有 3 個是寬的(代表 1),6 個是窄的(代表 0)。一個 Code 128 字元是 11 個模組:一個起始模式、6 個編碼條/空格和一個停止模式。因此每個字元為 11 個模組;11 x 字元數 + 13(起始 + 停止 + 校驗 + 靜區)即為符號寬度。Code 128 有三種編碼集:A(大寫 + 控制字元)、B(大寫 + 小寫)、C(配對數字 00-99)——切換碼讓編碼器為每個子字串選擇最有效率的編碼集。 對於二維碼,演算法有所不同。QR Code 使用 Reed-Solomon 糾錯(EC 等級 L/M/Q/H 分別增加 7%、15%、25%、30% 的冗餘)和可配置的遮罩模式(8 種之一;編碼器選擇使懲罰分數最小的那個)。遮罩處理後,位元流被放置在 21x21(版本 1)到 177x177(版本 40)模組的方形網格上;角落的三個 7x7 尋找器圖案和內角的 5x5 校正圖案提供方向和比例資訊。Data Matrix 使用類似的佈局,兩側是 L 形實線邊框,另外兩側是交替的深淺色。PDF417 是一種堆疊式線性碼(17 個模組寬,最多 90 行),用於美國駕照和航空公司登機證。 本頁面使用 ZXing('Zebra Crossing')函式庫,這是一個開源的 Apache-2.0 多格式解碼器,源自 Google ZXing 專案。ZXing 執行完整的處理流程(定位 → 前處理 → 解碼),並依序嘗試每種已知的條碼格式。它支援 UPC-A、UPC-E、EAN-8、EAN-13、Code 39、Code 93、Code 128、ITF、Codabar、QR Code、Data Matrix、PDF417 和 Aztec。對於二維碼,在良好光線下的 1080p 照片中成功率約為 99%;對於一維碼則較低(約 85-95%),因為透視、模糊和反光會使條寬失真。本工具僅支援圖片檔案輸入(上傳、拖曳或剪貼簿貼上),不提供攝影機即時掃碼功能。 校驗碼至關重要。UPC/EAN 使用單一模 10 校驗位(奇數位數字之和 x 3 + 偶數位數字之和,模 10,再用 10 減去)。Code 128 使用模 103 校驗字元。Code 39 不要求校驗位,但建議在物流場景中使用 mod-43 校驗。QR Code 使用 Reed-Solomon 糾錯;如果糾錯解碼器發現的錯誤超出可糾正範圍,解碼即失敗。當函式庫揭露失敗原因時,頁面會顯示解碼失敗的資訊(校驗碼不符、靜區太小、遮罩衝突)。
- 一維條碼(UPC、EAN、Code 39、Code 128、ITF)以條/空格寬度編碼資料;二維碼(QR Code、Data Matrix、PDF417、Aztec)以二維模組網格編碼。兩者都需要約 10 倍單位寬度的靜區才有效。
- 影像處理流程:Rec. 601 灰階(0.299R + 0.587G + 0.114B)→ Otsu 或 Sauvola 閾值 → Sobel 邊緣偵測 → Hough 轉換求方向 → 連通元件分析找出符號邊界框。
- Code 128 有 3 種編碼集:A(大寫 + 控制字元)、B(大寫 + 小寫)、C(配對數字 00-99)。切換碼讓編碼器為每個子字串選擇最緊湊的編碼集,比 Code 39 更緊湊地打包如 UPC-A '123456789012' 之類的數字。
- Code 39:每個字元 9 條 + 9 空格,3 個寬的(1)和 6 個窄的(0);起始/停止字元為 '*'。可選的 mod-43 校驗位。廣泛應用於汽車、國防和美國政府(MIL-STD-1189)。
- Code 93 是 Code 128 的前身,每個字元 9 個模組(6 個資料 + 起始/停止)和 47 個唯一字元;在大多數應用中已被 Code 128 取代,但仍見於某些加拿大藥房和 USPS 應用。
- QR Code:L/M/Q/H 等級的 Reed-Solomon 糾錯(7%/15%/25%/30% 冗餘),8 種遮罩模式,21x21 到 177x177 個模組(版本 1 到 40)。角落的三個 7x7 尋找器圖案提供方向;較大版本上的 5x5 校正圖案可校正透視失真。
- Data Matrix:兩側為 L 形實線邊框,另外兩側為交替深淺色;用於電子和製藥業的小型物品標記(ISO/IEC 16022)。
- ZXing('Zebra Crossing',Apache-2.0,Google):本頁面使用的開源多格式解碼器。支援 UPC-A/E、EAN-8/13、Code 39/93/128、ITF、Codabar、QR Code、Data Matrix、PDF417 和 Aztec。本工具僅支援從圖片檔案解碼(上傳、拖曳或剪貼簿貼上),不提供攝影機即時掃碼。
- 校驗碼:UPC/EAN 使用 mod-10,Code 128 使用 mod-103,Code 39 使用可選的 mod-43,QR Code 使用 Reed-Solomon 糾錯。校驗碼不符表示影像已損壞,而非資料本身有誤。
範例
商品條碼辨識
上傳超市商品照片,解析 EAN-13 條碼取得 6901234567890,再用此編號查詢商品名稱、製造商、價格等資訊物流追蹤碼讀取
拍下貨運標籤上的條碼,解析後取得追蹤號碼如 SF1234567890,輸入快遞網站查詢物流狀態書籍 ISBN 解析
掃描書本封底的條碼,解析出 ISBN 如 9787111234567,於書目資料庫查詢詳細書籍資訊常見問題
可以解碼哪些條碼格式?
常見的一維碼包含 CODE 128、EAN-13、EAN-8、UPC-A、UPC-E、CODE 39、CODE 93、ITF(Interleaved 2 of 5)、Codabar,以及 QR Code、Data Matrix、Aztec、PDF417 等二維碼。本頁透過 ZXing 函式庫在你的瀏覽器中辨識並解碼這些格式,單張上傳的圖片即可處理。
圖片會被上傳到伺服器解碼嗎?
不會。解碼完全透過 WebAssembly 或純 JavaScript 在瀏覽器內完成。圖片拖入後是在本機讀取位元組,不會傳送到任何伺服器。可以打開瀏覽器的 Network 分頁自行確認。
為什麼我的條碼一直無法解碼?
常見原因有:圖片模糊、條碼旋轉角度超過解碼器容許範圍、對比度不足、表面有反光等。可以嘗試裁切到更貼近條碼、調高亮度/對比,並確保整個條碼至少有 200–300 像素寬。在直射光下拍攝光面印刷條碼經常會失敗。
支援哪些圖片格式?
支援 PNG、JPEG、GIF、WebP 與 BMP。可以選檔案、拖放,或從剪貼簿貼上。圖片會載入到隱藏的 canvas 中解碼——不會傳送到伺服器。
結果會包含哪些資訊?
包含解碼出的文字內容與偵測到的條碼格式。如果解出來的是 URL,會出現一個按鈕可在新分頁開啟;同時也會顯示字元數與格式名稱。
EAN-13 的檢查碼會驗證嗎?
ZXing 只在條碼通過內部所有檢查(包含格式所要求的檢查碼)時才會回傳結果。若解碼失敗,本頁只會顯示「找不到條碼」,不會區分到底是圖片不可讀還是檢查碼不對。
一張圖內有多個條碼,能一次解出來嗎?
本頁會偵測圖中最清晰的那組碼。若圖中有多個條碼,請各自裁切後分別上傳,這樣結果最為穩定。