44
[鍵入文字] I [鍵入文字] 私立東海大學資訊工程學系 Tunghai University Computer Science Department 專題報告書 QR code 應用在物流網 Object Networking using QR code 指導教授: 朱延帄 組員: s963947 謝秉荃 s963931 王奕翔 中華民國九十九年十二月

私立東海大學資訊工程學系 - cs.thu.edu.t · 摘要 本專題在於介紹QR Code應用在物流網的概念上,利用電腦內所安裝的QR Code解碼程式對QR Code進行解碼,藉由此過程取得物流資訊,一方面實現貨

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

[鍵入文字] I [鍵入文字]

私立東海大學資訊工程學系

Tunghai University

Computer Science Department

專題報告書

QR code 應用在物流網

Object Networking using QR code

指導教授 朱延帄

組員 s963947 謝秉荃

s963931 王奕翔

中華民國九十九年十二月

摘要

本專題在於介紹 QR Code應用在物流網的概念上利用電腦內所安裝的 QR

Code解碼程式對 QR Code 進行解碼藉由此過程取得物流資訊一方面實現貨

物交易過程的身分識別另一方面使整體物流串連以節省人力操作所花費的資源

達到提高效率的目標

由於整體物流的資訊是藉由條碼存載條碼所能容納的資訊多寡及性質的寬

廣程度自然成為了選擇的方向二維條碼所能載有的資訊比一維條碼更為豐富且

性質更廣其中又以 QR Code在近年發展最為盛行故本專題以 QR Code 作為應

用來實行物流網概念我們在「商品化」的物品上附有該物品自生產到銷售整體

的相關資訊利用解碼程式解碼取得資訊

本專題藉由數位教學展示 QR Code應用於物流網實現串連物流資訊的實作過

程並實際模擬 QR Code 解碼過程說明 QR Code 解碼原理

目錄

第一章 專題計畫簡介

11 專題計劃動機

12 專題計劃大綱

13 開發工具

14 專題計畫進度及工作分配

第二章 文獻探討

21 物流網概念介紹

22 條碼發展簡介

23 二維條碼 - QR Code介紹

24 QR Code 實際應用在物流網例子介紹

第三章 QR Code應用在物流網之系統分析

31 系統整體架構

32 主程式解析

33 副程式解析與內部流程圖

第四章 QR Code應用在物流網之系統實作

41整體實作價購說明

42系統實作編碼程式實作過程

43系統實作解碼程式實作過程

第五章 結論與未來系統發展

參考文獻

圖目錄

圖 21 物流示意圖

圖 22 物流流程圖

圖 23 環形碼

圖 24 UPC碼

圖 25 消費券

圖 26 報紙上的新聞

圖 27 分享旅遊資訊

圖 28 購買火車票

圖 29 農產品履歷

圖 210 QR Code 結構圖

圖 211 圖資料分布圖

圖 212 用掃圖機掃瞄手機上的 QRcode

圖 213 取得送貨地點

圖 31 編碼程式流程圖

圖 32 解碼程式流程圖

圖 33 編碼 Encoder()流程圖

圖 34 手動輸入流程圖

圖 35 Decoder流程圖

圖 36 start按鍵流程圖

圖 37 check按鍵流程圖

圖 38 儲存圖檔流程圖

圖 41 專題系統流程

圖 42 Encoder介面

圖 43 輸入資料到 Encoder

圖 44 編碼成功

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

圖 47 Decoder介面

圖 48 對物品的 QRcode 解碼

圖 49 對客戶資訊做解碼

圖 410 物品資料與客戶資訊比對

表目錄

表 21 Version 表

表 22 表容錯等級與容錯率

第一章 專題計畫簡介

本章節針對專題計畫的整體目標做概略的介紹內容包含計畫動機大綱

工作分配及進度以及專題製作過程中所使用的開發工具

11專題計畫動機

以往在我們購買網路商品時到了超商取件時還要因為店員尋找貨

件而浪費了許多時間網路拍賣的貨件上還會有個人資料外洩的困擾此

時如果有一套軟體能告確切的告訴消費者取件的時間並且能改善店家收

件時的時間和隱私問題那該多好於是我們想到了 QuickResponse code

(QR 碼)就成為了我們解決的方法商家能收完件後店員利用掃 QRcode

結合我們開發的軟體能夠建檔增加搜尋貨品的效率此外我們在 QRcode

上還增加加密的功能來增加收件人的隱私當貨品寄到便利超商後

12 專題計劃大綱

當消費者要購買商品時商家可以製作一個消費者與商品共用的

QRcode然後寄給消費者當作收據之後消費者只要拿著這個 QRcode 去便

利商店給店員看店員掃碼後就可以知道貨品是否在店裡並且知道放置在

商店的何處其中掃碼的過程店員都不會知道買家的個人資訊因為貨品

上只有 QRcode我們要寫一個能夠的對比個人資料和貨品資訊的解碼程式

給便利超商方便店家讓消費者和商品確認的可靠性例如避免拿錯貨品之

情況發生並且減少尋找貨品上的時間

13 開發工具

本專題我們選用 JAVA來撰寫 QR Code 編碼及解碼程式其選擇的理由

在於專題準備期間瀏覽了許多日本開發 QR Code應用的相關文獻內容中的

應用程式大部分皆以手機做為應用的對象而市面手機程式目前以 JAVA撰

寫為多在考慮研讀資料取得的方便性及未來發展的實用性我們選用 JAVA

作為開發程式的語言

第二章 文獻探討

本章節簡述此次專題計畫於建置系統時所使用到的技術以及該技術的背景

與相關資料

21 物流網概念介紹

物流網概念簡述

物流就如字面上的意義是指物品之流動(流通)物流網可說是串連所有使

物品移動的相關活動其移動指的是為了從製造地(產地)將物品送達消費者手

中而經由運輸配送倉儲保管裝卸包裝流通加工與資訊情報等過程所伴隨

之所有作業活動連接生產地與消費者之間隔閡的各種作業則統稱為物流

圖 21 物流示意圖

製造地(生產)

消費者

廣義物流與狹義物流

廣義而言「物流」是指流程管理(management of a process)有學者稱為

「運籌管理」涵蓋從產品產製到銷售市場資訊的一連串活動如企業活動所包

含的資材物流生產物流銷售物流這些部分

狹義而言「物流」是指管理供應鏈(managing the supply chain)或稱為

銷售物流或商業物流其重點在於當物品經「商品化」之後從產地(農林

漁牧礦產品)或製造工廠產出再透過專業單位(物流中心)為商品做必須的

前置作業然後移動至下游的零售店家以期能達到減低成本提高效率的目的

圖 22 物流流程圖

資材物流 生產物流 銷售物流(狹義物流)

輸 送 輸 送 配 送

廣 義 物 流

工 廠

( 製造商 )

原料供應 生產 銷 售

物流扮演的角色

物流是中介協調者的角色在生產製造部門與零售消費部門之間商業物流

扮演著中間人的角色其主要營業項目為物流中心相關業務如商品之配送分

類暫存保管揀取流通加工採購及產品設計開發等其中商品配送這一

項目目前為物流中心之基本營業項目

物流是策略功能者的角色將產品及服務適時適地的交付予顧客乃是商

業物流最大的目的隨著資訊科技越來越發達物流活動從訂單倉儲配送等

傳統實體配送機能搖身一變成為策略性角色供應鏈管理(supply chain

management)與全球運籌管理(global logistics)的機制使物流管理已經變成

國內許多製造業的策略性議題

物流是虛擬連結者的角色「貨暢其流」乃是商業物流不斷追求的目標也

就是如何使商品能夠以低成本的代價而能精準度高地將商品由供應商快速移動

至零售店家

物流是需求偵測者的角色企業經營會儘可能降低存貨的成本因此在能

夠滿足顧客需求且不缺貨的前提下廠商希望能使存貨水準保持在最低的水準

物流是中立立場者的角色隨著商業物流策略性角色的出現物流經營也朝

專業化發展

22 條碼發展簡介

條碼起源

美國人 Joe Wood Land 和 Berny Silver為了研究食品代碼自動識別於 1949

年研發了第一款環形條碼(圖 211環形碼)(公牛眼)

圖 23 環形碼

實用條碼

來到 1960年代中期由於美國在日常生活中使用碼磅度量衡法(yard pound)

的8進位數6進位數因此 10 進位數的美元美分及消費稅的計算會花費不

少時間在現金交納處出現了顧客排起長龍等待付款的情況十分不便大型零

售店也無法發揮其快捷方便的功能為瞭解決排隊現象人們採取了各種解決方

法例如在商品上附上重量與商品價格相當的金屬最後一起加算金屬來計算金

額等但哪一種方法都未達到實用的水帄在這種形勢下1967 年著名超級

連鎖店 KROGAR 首次採取了將後來成為 UPC 原型的條碼附在商品上並通過電子

掃描器讀取輸入到電腦中的方法這就是商品條碼的起源

條碼統一

商品條碼進入實用階段後卻因為沒有統一的約定對所有商品附加號碼而無

法廣泛普及於是1973年以美國食品連鎖協會等為中心制定了「統一商品代

碼」(Universal Product Code UPC) (圖 24 UPC碼)

UPC碼結構由一組規則排列尺寸和顏色有一定規定的ldquo條rdquo

(Bar) ldquo空rdquo (Space) 及對應數位字元ldquo碼rdquo組成表示一定資訊的商品標

識ldquo條rdquo與ldquo空rdquo分別由深淺不同而且滿足一定光學對比度要求的兩種顏色

表示ldquo條rdquo為深色ldquo空rdquo為淺色這種ldquo條rdquoldquo空rdquo和相對應的字元ldquo碼rdquo

代表相同的資訊前者供掃描器讀識後者供人直接讀識或者通過鍵盤向電腦輸

入資料使用

圖 24 UPC 碼

行動條碼發展與應用

1 商品優惠券

在店家的官方網站上拍攝優惠券的 QRcode然後再購物時拿出 QRcode

的圖檔給店員掃圖取代傳統發 DM 所造成的垃圾汙染問題(圖 25)

2新聞資訊

在報章雜誌上刊登 QRcode來連結到線上播放軟體觀看最新的實況新

聞(圖 26)

3導覽系統

利用 QRcode 連結到網路做線上的導覽並且得知現在位置和其他景點

的相關位置方便各個觀光課使用(圖 27)

4商務交易

許多公司已推行利用 QRcode來購買商品也就是利用 QRcode 來連線到

交易網站然後來購買電影票或是火車票的功能(圖 28)

5商品資訊

在每個商品上做一個可以連結到此商品的線上資料庫使消費者清

楚的得知商品資訊不需要再去看商品上那密密麻麻的商品內容

了(圖 29)

圖 25 百貨公司 DM

(出處httpwwwqrdoorcomtwimagesqrwapqrwap06jpg)

圖 26 報紙上的新聞

(出處 httpwwwdigitalmasonscouk

shksprmobiblog200807unstoppable-rise-of-qr-codes-continu

eshtml)

圖 27 分享旅遊資訊

(出處

httpwwwbigmouthmediacomliveimagesgoogle-maps-with-qr-

codejpg )

圖 28 購買火車票

(出處

httplh6ggphtcom_CVujTYI3MDcR_vKopjcsDIAAAAAAAAECwbY-

QEsHfbKsDSCF6134JPG)

圖 29 農產品履歷

(出處 httpwaterbeeblogspotcom200806qr-codehtml)

23 二維條碼 - QR Code 介紹

QR Code 簡介

QR Code 原名Quick Response Code (快速反應碼)

是由日本一家叫 Denso-Wave的公司於 1994 年發明的二維條碼最早應用於工廠

生產線零件追蹤用因為其面積小又可以容納英數以外的字元如中文 UTF-8

等比起一維條碼 QR Code更能儲存更多的資訊內容所以才慢慢被廣泛應用到

消費市場中

如今 QR Code已廣泛使用在各行業的物流管理QR Code比起部分條碼可儲

存更多資料也不像一般條碼在掃描時需要直線對準 Reader另外 QR Code有

容錯能力當 QR Code 圖形有破損在一定程度內仍可被 Reader讀取內容最高

可以容許 7~30面積的破損

QR Code 資料儲存

QR code 資料儲存的方法是將資料依照每種不同的模式規則轉換成 0 和 1

的 Bit 值放置在每個 module 內存放數字使用 Numeric mode 英文跟數字的

組合使用 Alphanumeric mode 中文編碼(UTF-8)使用 8-bit byte mode 日文

編碼(JIS X 0208)使用 Kanji mode不論是儲存英文中文數字符號經

過查表後得到對應的數值轉換成 2 進位 bit 值有些 mode 在轉換過程中有各

自不同的資料轉換計算方式經過計算的轉換後最後在數列的最前頭插入使用

的模式對應的 2 進位值用來告知表示使用的 Mode最後按照 QR code 的規則將

轉換後的 2進位值放置在每個 module中以 Numeric Mode 儲存 ldquo01234567rdquo

為例

Step1 以三個數字為一組拆對

012 345 67

Step2 十進位轉成二進位

012rarr0000001100

345rarr0101011001

67rarr1000011

Step3 結合轉換後的值

000000110001010110011000011

Step4 計算資料的字元總數並根據使用的 QR code版本將此總數的值轉換成

2進位

01234567( 8 characters)

10 bits for version-1 8rarr0000001000

Step5 Mode indicator+Step4 轉換的值+Step3 的值

Numeric Mode indicator 0001

0001 0000001000 000000110001010110011000011

QR Code 結構

QR Code 圖樣為一正方形一般為黑白兩色所構成左上左下右上三個

角落各印有一個像「回」字的圖案做為幫助解碼軟體定位掃描時不須對準無

論以任何角度都能正確讀取資料除了定位區塊剩下部份由資料儲存區塊及容

錯區塊所組成(圖 210 QR Code結構圖)

圖 210 QR Code 結構圖

QR code 容錯能力

為了避免因為圖形的損壞而導致資料的遺失使用 Reed-Solomon 演算法製

造出 Error Correction Code 儲存在資料容錯區中QR code分為四種等級 LM

QH分別大約為 7152530損壞恢復

定位用圖案

Position detection patterns

資料儲存區

Data Area

表 21 Version 表

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

摘要

本專題在於介紹 QR Code應用在物流網的概念上利用電腦內所安裝的 QR

Code解碼程式對 QR Code 進行解碼藉由此過程取得物流資訊一方面實現貨

物交易過程的身分識別另一方面使整體物流串連以節省人力操作所花費的資源

達到提高效率的目標

由於整體物流的資訊是藉由條碼存載條碼所能容納的資訊多寡及性質的寬

廣程度自然成為了選擇的方向二維條碼所能載有的資訊比一維條碼更為豐富且

性質更廣其中又以 QR Code在近年發展最為盛行故本專題以 QR Code 作為應

用來實行物流網概念我們在「商品化」的物品上附有該物品自生產到銷售整體

的相關資訊利用解碼程式解碼取得資訊

本專題藉由數位教學展示 QR Code應用於物流網實現串連物流資訊的實作過

程並實際模擬 QR Code 解碼過程說明 QR Code 解碼原理

目錄

第一章 專題計畫簡介

11 專題計劃動機

12 專題計劃大綱

13 開發工具

14 專題計畫進度及工作分配

第二章 文獻探討

21 物流網概念介紹

22 條碼發展簡介

23 二維條碼 - QR Code介紹

24 QR Code 實際應用在物流網例子介紹

第三章 QR Code應用在物流網之系統分析

31 系統整體架構

32 主程式解析

33 副程式解析與內部流程圖

第四章 QR Code應用在物流網之系統實作

41整體實作價購說明

42系統實作編碼程式實作過程

43系統實作解碼程式實作過程

第五章 結論與未來系統發展

參考文獻

圖目錄

圖 21 物流示意圖

圖 22 物流流程圖

圖 23 環形碼

圖 24 UPC碼

圖 25 消費券

圖 26 報紙上的新聞

圖 27 分享旅遊資訊

圖 28 購買火車票

圖 29 農產品履歷

圖 210 QR Code 結構圖

圖 211 圖資料分布圖

圖 212 用掃圖機掃瞄手機上的 QRcode

圖 213 取得送貨地點

圖 31 編碼程式流程圖

圖 32 解碼程式流程圖

圖 33 編碼 Encoder()流程圖

圖 34 手動輸入流程圖

圖 35 Decoder流程圖

圖 36 start按鍵流程圖

圖 37 check按鍵流程圖

圖 38 儲存圖檔流程圖

圖 41 專題系統流程

圖 42 Encoder介面

圖 43 輸入資料到 Encoder

圖 44 編碼成功

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

圖 47 Decoder介面

圖 48 對物品的 QRcode 解碼

圖 49 對客戶資訊做解碼

圖 410 物品資料與客戶資訊比對

表目錄

表 21 Version 表

表 22 表容錯等級與容錯率

第一章 專題計畫簡介

本章節針對專題計畫的整體目標做概略的介紹內容包含計畫動機大綱

工作分配及進度以及專題製作過程中所使用的開發工具

11專題計畫動機

以往在我們購買網路商品時到了超商取件時還要因為店員尋找貨

件而浪費了許多時間網路拍賣的貨件上還會有個人資料外洩的困擾此

時如果有一套軟體能告確切的告訴消費者取件的時間並且能改善店家收

件時的時間和隱私問題那該多好於是我們想到了 QuickResponse code

(QR 碼)就成為了我們解決的方法商家能收完件後店員利用掃 QRcode

結合我們開發的軟體能夠建檔增加搜尋貨品的效率此外我們在 QRcode

上還增加加密的功能來增加收件人的隱私當貨品寄到便利超商後

12 專題計劃大綱

當消費者要購買商品時商家可以製作一個消費者與商品共用的

QRcode然後寄給消費者當作收據之後消費者只要拿著這個 QRcode 去便

利商店給店員看店員掃碼後就可以知道貨品是否在店裡並且知道放置在

商店的何處其中掃碼的過程店員都不會知道買家的個人資訊因為貨品

上只有 QRcode我們要寫一個能夠的對比個人資料和貨品資訊的解碼程式

給便利超商方便店家讓消費者和商品確認的可靠性例如避免拿錯貨品之

情況發生並且減少尋找貨品上的時間

13 開發工具

本專題我們選用 JAVA來撰寫 QR Code 編碼及解碼程式其選擇的理由

在於專題準備期間瀏覽了許多日本開發 QR Code應用的相關文獻內容中的

應用程式大部分皆以手機做為應用的對象而市面手機程式目前以 JAVA撰

寫為多在考慮研讀資料取得的方便性及未來發展的實用性我們選用 JAVA

作為開發程式的語言

第二章 文獻探討

本章節簡述此次專題計畫於建置系統時所使用到的技術以及該技術的背景

與相關資料

21 物流網概念介紹

物流網概念簡述

物流就如字面上的意義是指物品之流動(流通)物流網可說是串連所有使

物品移動的相關活動其移動指的是為了從製造地(產地)將物品送達消費者手

中而經由運輸配送倉儲保管裝卸包裝流通加工與資訊情報等過程所伴隨

之所有作業活動連接生產地與消費者之間隔閡的各種作業則統稱為物流

圖 21 物流示意圖

製造地(生產)

消費者

廣義物流與狹義物流

廣義而言「物流」是指流程管理(management of a process)有學者稱為

「運籌管理」涵蓋從產品產製到銷售市場資訊的一連串活動如企業活動所包

含的資材物流生產物流銷售物流這些部分

狹義而言「物流」是指管理供應鏈(managing the supply chain)或稱為

銷售物流或商業物流其重點在於當物品經「商品化」之後從產地(農林

漁牧礦產品)或製造工廠產出再透過專業單位(物流中心)為商品做必須的

前置作業然後移動至下游的零售店家以期能達到減低成本提高效率的目的

圖 22 物流流程圖

資材物流 生產物流 銷售物流(狹義物流)

輸 送 輸 送 配 送

廣 義 物 流

工 廠

( 製造商 )

原料供應 生產 銷 售

物流扮演的角色

物流是中介協調者的角色在生產製造部門與零售消費部門之間商業物流

扮演著中間人的角色其主要營業項目為物流中心相關業務如商品之配送分

類暫存保管揀取流通加工採購及產品設計開發等其中商品配送這一

項目目前為物流中心之基本營業項目

物流是策略功能者的角色將產品及服務適時適地的交付予顧客乃是商

業物流最大的目的隨著資訊科技越來越發達物流活動從訂單倉儲配送等

傳統實體配送機能搖身一變成為策略性角色供應鏈管理(supply chain

management)與全球運籌管理(global logistics)的機制使物流管理已經變成

國內許多製造業的策略性議題

物流是虛擬連結者的角色「貨暢其流」乃是商業物流不斷追求的目標也

就是如何使商品能夠以低成本的代價而能精準度高地將商品由供應商快速移動

至零售店家

物流是需求偵測者的角色企業經營會儘可能降低存貨的成本因此在能

夠滿足顧客需求且不缺貨的前提下廠商希望能使存貨水準保持在最低的水準

物流是中立立場者的角色隨著商業物流策略性角色的出現物流經營也朝

專業化發展

22 條碼發展簡介

條碼起源

美國人 Joe Wood Land 和 Berny Silver為了研究食品代碼自動識別於 1949

年研發了第一款環形條碼(圖 211環形碼)(公牛眼)

圖 23 環形碼

實用條碼

來到 1960年代中期由於美國在日常生活中使用碼磅度量衡法(yard pound)

的8進位數6進位數因此 10 進位數的美元美分及消費稅的計算會花費不

少時間在現金交納處出現了顧客排起長龍等待付款的情況十分不便大型零

售店也無法發揮其快捷方便的功能為瞭解決排隊現象人們採取了各種解決方

法例如在商品上附上重量與商品價格相當的金屬最後一起加算金屬來計算金

額等但哪一種方法都未達到實用的水帄在這種形勢下1967 年著名超級

連鎖店 KROGAR 首次採取了將後來成為 UPC 原型的條碼附在商品上並通過電子

掃描器讀取輸入到電腦中的方法這就是商品條碼的起源

條碼統一

商品條碼進入實用階段後卻因為沒有統一的約定對所有商品附加號碼而無

法廣泛普及於是1973年以美國食品連鎖協會等為中心制定了「統一商品代

碼」(Universal Product Code UPC) (圖 24 UPC碼)

UPC碼結構由一組規則排列尺寸和顏色有一定規定的ldquo條rdquo

(Bar) ldquo空rdquo (Space) 及對應數位字元ldquo碼rdquo組成表示一定資訊的商品標

識ldquo條rdquo與ldquo空rdquo分別由深淺不同而且滿足一定光學對比度要求的兩種顏色

表示ldquo條rdquo為深色ldquo空rdquo為淺色這種ldquo條rdquoldquo空rdquo和相對應的字元ldquo碼rdquo

代表相同的資訊前者供掃描器讀識後者供人直接讀識或者通過鍵盤向電腦輸

入資料使用

圖 24 UPC 碼

行動條碼發展與應用

1 商品優惠券

在店家的官方網站上拍攝優惠券的 QRcode然後再購物時拿出 QRcode

的圖檔給店員掃圖取代傳統發 DM 所造成的垃圾汙染問題(圖 25)

2新聞資訊

在報章雜誌上刊登 QRcode來連結到線上播放軟體觀看最新的實況新

聞(圖 26)

3導覽系統

利用 QRcode 連結到網路做線上的導覽並且得知現在位置和其他景點

的相關位置方便各個觀光課使用(圖 27)

4商務交易

許多公司已推行利用 QRcode來購買商品也就是利用 QRcode 來連線到

交易網站然後來購買電影票或是火車票的功能(圖 28)

5商品資訊

在每個商品上做一個可以連結到此商品的線上資料庫使消費者清

楚的得知商品資訊不需要再去看商品上那密密麻麻的商品內容

了(圖 29)

圖 25 百貨公司 DM

(出處httpwwwqrdoorcomtwimagesqrwapqrwap06jpg)

圖 26 報紙上的新聞

(出處 httpwwwdigitalmasonscouk

shksprmobiblog200807unstoppable-rise-of-qr-codes-continu

eshtml)

圖 27 分享旅遊資訊

(出處

httpwwwbigmouthmediacomliveimagesgoogle-maps-with-qr-

codejpg )

圖 28 購買火車票

(出處

httplh6ggphtcom_CVujTYI3MDcR_vKopjcsDIAAAAAAAAECwbY-

QEsHfbKsDSCF6134JPG)

圖 29 農產品履歷

(出處 httpwaterbeeblogspotcom200806qr-codehtml)

23 二維條碼 - QR Code 介紹

QR Code 簡介

QR Code 原名Quick Response Code (快速反應碼)

是由日本一家叫 Denso-Wave的公司於 1994 年發明的二維條碼最早應用於工廠

生產線零件追蹤用因為其面積小又可以容納英數以外的字元如中文 UTF-8

等比起一維條碼 QR Code更能儲存更多的資訊內容所以才慢慢被廣泛應用到

消費市場中

如今 QR Code已廣泛使用在各行業的物流管理QR Code比起部分條碼可儲

存更多資料也不像一般條碼在掃描時需要直線對準 Reader另外 QR Code有

容錯能力當 QR Code 圖形有破損在一定程度內仍可被 Reader讀取內容最高

可以容許 7~30面積的破損

QR Code 資料儲存

QR code 資料儲存的方法是將資料依照每種不同的模式規則轉換成 0 和 1

的 Bit 值放置在每個 module 內存放數字使用 Numeric mode 英文跟數字的

組合使用 Alphanumeric mode 中文編碼(UTF-8)使用 8-bit byte mode 日文

編碼(JIS X 0208)使用 Kanji mode不論是儲存英文中文數字符號經

過查表後得到對應的數值轉換成 2 進位 bit 值有些 mode 在轉換過程中有各

自不同的資料轉換計算方式經過計算的轉換後最後在數列的最前頭插入使用

的模式對應的 2 進位值用來告知表示使用的 Mode最後按照 QR code 的規則將

轉換後的 2進位值放置在每個 module中以 Numeric Mode 儲存 ldquo01234567rdquo

為例

Step1 以三個數字為一組拆對

012 345 67

Step2 十進位轉成二進位

012rarr0000001100

345rarr0101011001

67rarr1000011

Step3 結合轉換後的值

000000110001010110011000011

Step4 計算資料的字元總數並根據使用的 QR code版本將此總數的值轉換成

2進位

01234567( 8 characters)

10 bits for version-1 8rarr0000001000

Step5 Mode indicator+Step4 轉換的值+Step3 的值

Numeric Mode indicator 0001

0001 0000001000 000000110001010110011000011

QR Code 結構

QR Code 圖樣為一正方形一般為黑白兩色所構成左上左下右上三個

角落各印有一個像「回」字的圖案做為幫助解碼軟體定位掃描時不須對準無

論以任何角度都能正確讀取資料除了定位區塊剩下部份由資料儲存區塊及容

錯區塊所組成(圖 210 QR Code結構圖)

圖 210 QR Code 結構圖

QR code 容錯能力

為了避免因為圖形的損壞而導致資料的遺失使用 Reed-Solomon 演算法製

造出 Error Correction Code 儲存在資料容錯區中QR code分為四種等級 LM

QH分別大約為 7152530損壞恢復

定位用圖案

Position detection patterns

資料儲存區

Data Area

表 21 Version 表

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

目錄

第一章 專題計畫簡介

11 專題計劃動機

12 專題計劃大綱

13 開發工具

14 專題計畫進度及工作分配

第二章 文獻探討

21 物流網概念介紹

22 條碼發展簡介

23 二維條碼 - QR Code介紹

24 QR Code 實際應用在物流網例子介紹

第三章 QR Code應用在物流網之系統分析

31 系統整體架構

32 主程式解析

33 副程式解析與內部流程圖

第四章 QR Code應用在物流網之系統實作

41整體實作價購說明

42系統實作編碼程式實作過程

43系統實作解碼程式實作過程

第五章 結論與未來系統發展

參考文獻

圖目錄

圖 21 物流示意圖

圖 22 物流流程圖

圖 23 環形碼

圖 24 UPC碼

圖 25 消費券

圖 26 報紙上的新聞

圖 27 分享旅遊資訊

圖 28 購買火車票

圖 29 農產品履歷

圖 210 QR Code 結構圖

圖 211 圖資料分布圖

圖 212 用掃圖機掃瞄手機上的 QRcode

圖 213 取得送貨地點

圖 31 編碼程式流程圖

圖 32 解碼程式流程圖

圖 33 編碼 Encoder()流程圖

圖 34 手動輸入流程圖

圖 35 Decoder流程圖

圖 36 start按鍵流程圖

圖 37 check按鍵流程圖

圖 38 儲存圖檔流程圖

圖 41 專題系統流程

圖 42 Encoder介面

圖 43 輸入資料到 Encoder

圖 44 編碼成功

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

圖 47 Decoder介面

圖 48 對物品的 QRcode 解碼

圖 49 對客戶資訊做解碼

圖 410 物品資料與客戶資訊比對

表目錄

表 21 Version 表

表 22 表容錯等級與容錯率

第一章 專題計畫簡介

本章節針對專題計畫的整體目標做概略的介紹內容包含計畫動機大綱

工作分配及進度以及專題製作過程中所使用的開發工具

11專題計畫動機

以往在我們購買網路商品時到了超商取件時還要因為店員尋找貨

件而浪費了許多時間網路拍賣的貨件上還會有個人資料外洩的困擾此

時如果有一套軟體能告確切的告訴消費者取件的時間並且能改善店家收

件時的時間和隱私問題那該多好於是我們想到了 QuickResponse code

(QR 碼)就成為了我們解決的方法商家能收完件後店員利用掃 QRcode

結合我們開發的軟體能夠建檔增加搜尋貨品的效率此外我們在 QRcode

上還增加加密的功能來增加收件人的隱私當貨品寄到便利超商後

12 專題計劃大綱

當消費者要購買商品時商家可以製作一個消費者與商品共用的

QRcode然後寄給消費者當作收據之後消費者只要拿著這個 QRcode 去便

利商店給店員看店員掃碼後就可以知道貨品是否在店裡並且知道放置在

商店的何處其中掃碼的過程店員都不會知道買家的個人資訊因為貨品

上只有 QRcode我們要寫一個能夠的對比個人資料和貨品資訊的解碼程式

給便利超商方便店家讓消費者和商品確認的可靠性例如避免拿錯貨品之

情況發生並且減少尋找貨品上的時間

13 開發工具

本專題我們選用 JAVA來撰寫 QR Code 編碼及解碼程式其選擇的理由

在於專題準備期間瀏覽了許多日本開發 QR Code應用的相關文獻內容中的

應用程式大部分皆以手機做為應用的對象而市面手機程式目前以 JAVA撰

寫為多在考慮研讀資料取得的方便性及未來發展的實用性我們選用 JAVA

作為開發程式的語言

第二章 文獻探討

本章節簡述此次專題計畫於建置系統時所使用到的技術以及該技術的背景

與相關資料

21 物流網概念介紹

物流網概念簡述

物流就如字面上的意義是指物品之流動(流通)物流網可說是串連所有使

物品移動的相關活動其移動指的是為了從製造地(產地)將物品送達消費者手

中而經由運輸配送倉儲保管裝卸包裝流通加工與資訊情報等過程所伴隨

之所有作業活動連接生產地與消費者之間隔閡的各種作業則統稱為物流

圖 21 物流示意圖

製造地(生產)

消費者

廣義物流與狹義物流

廣義而言「物流」是指流程管理(management of a process)有學者稱為

「運籌管理」涵蓋從產品產製到銷售市場資訊的一連串活動如企業活動所包

含的資材物流生產物流銷售物流這些部分

狹義而言「物流」是指管理供應鏈(managing the supply chain)或稱為

銷售物流或商業物流其重點在於當物品經「商品化」之後從產地(農林

漁牧礦產品)或製造工廠產出再透過專業單位(物流中心)為商品做必須的

前置作業然後移動至下游的零售店家以期能達到減低成本提高效率的目的

圖 22 物流流程圖

資材物流 生產物流 銷售物流(狹義物流)

輸 送 輸 送 配 送

廣 義 物 流

工 廠

( 製造商 )

原料供應 生產 銷 售

物流扮演的角色

物流是中介協調者的角色在生產製造部門與零售消費部門之間商業物流

扮演著中間人的角色其主要營業項目為物流中心相關業務如商品之配送分

類暫存保管揀取流通加工採購及產品設計開發等其中商品配送這一

項目目前為物流中心之基本營業項目

物流是策略功能者的角色將產品及服務適時適地的交付予顧客乃是商

業物流最大的目的隨著資訊科技越來越發達物流活動從訂單倉儲配送等

傳統實體配送機能搖身一變成為策略性角色供應鏈管理(supply chain

management)與全球運籌管理(global logistics)的機制使物流管理已經變成

國內許多製造業的策略性議題

物流是虛擬連結者的角色「貨暢其流」乃是商業物流不斷追求的目標也

就是如何使商品能夠以低成本的代價而能精準度高地將商品由供應商快速移動

至零售店家

物流是需求偵測者的角色企業經營會儘可能降低存貨的成本因此在能

夠滿足顧客需求且不缺貨的前提下廠商希望能使存貨水準保持在最低的水準

物流是中立立場者的角色隨著商業物流策略性角色的出現物流經營也朝

專業化發展

22 條碼發展簡介

條碼起源

美國人 Joe Wood Land 和 Berny Silver為了研究食品代碼自動識別於 1949

年研發了第一款環形條碼(圖 211環形碼)(公牛眼)

圖 23 環形碼

實用條碼

來到 1960年代中期由於美國在日常生活中使用碼磅度量衡法(yard pound)

的8進位數6進位數因此 10 進位數的美元美分及消費稅的計算會花費不

少時間在現金交納處出現了顧客排起長龍等待付款的情況十分不便大型零

售店也無法發揮其快捷方便的功能為瞭解決排隊現象人們採取了各種解決方

法例如在商品上附上重量與商品價格相當的金屬最後一起加算金屬來計算金

額等但哪一種方法都未達到實用的水帄在這種形勢下1967 年著名超級

連鎖店 KROGAR 首次採取了將後來成為 UPC 原型的條碼附在商品上並通過電子

掃描器讀取輸入到電腦中的方法這就是商品條碼的起源

條碼統一

商品條碼進入實用階段後卻因為沒有統一的約定對所有商品附加號碼而無

法廣泛普及於是1973年以美國食品連鎖協會等為中心制定了「統一商品代

碼」(Universal Product Code UPC) (圖 24 UPC碼)

UPC碼結構由一組規則排列尺寸和顏色有一定規定的ldquo條rdquo

(Bar) ldquo空rdquo (Space) 及對應數位字元ldquo碼rdquo組成表示一定資訊的商品標

識ldquo條rdquo與ldquo空rdquo分別由深淺不同而且滿足一定光學對比度要求的兩種顏色

表示ldquo條rdquo為深色ldquo空rdquo為淺色這種ldquo條rdquoldquo空rdquo和相對應的字元ldquo碼rdquo

代表相同的資訊前者供掃描器讀識後者供人直接讀識或者通過鍵盤向電腦輸

入資料使用

圖 24 UPC 碼

行動條碼發展與應用

1 商品優惠券

在店家的官方網站上拍攝優惠券的 QRcode然後再購物時拿出 QRcode

的圖檔給店員掃圖取代傳統發 DM 所造成的垃圾汙染問題(圖 25)

2新聞資訊

在報章雜誌上刊登 QRcode來連結到線上播放軟體觀看最新的實況新

聞(圖 26)

3導覽系統

利用 QRcode 連結到網路做線上的導覽並且得知現在位置和其他景點

的相關位置方便各個觀光課使用(圖 27)

4商務交易

許多公司已推行利用 QRcode來購買商品也就是利用 QRcode 來連線到

交易網站然後來購買電影票或是火車票的功能(圖 28)

5商品資訊

在每個商品上做一個可以連結到此商品的線上資料庫使消費者清

楚的得知商品資訊不需要再去看商品上那密密麻麻的商品內容

了(圖 29)

圖 25 百貨公司 DM

(出處httpwwwqrdoorcomtwimagesqrwapqrwap06jpg)

圖 26 報紙上的新聞

(出處 httpwwwdigitalmasonscouk

shksprmobiblog200807unstoppable-rise-of-qr-codes-continu

eshtml)

圖 27 分享旅遊資訊

(出處

httpwwwbigmouthmediacomliveimagesgoogle-maps-with-qr-

codejpg )

圖 28 購買火車票

(出處

httplh6ggphtcom_CVujTYI3MDcR_vKopjcsDIAAAAAAAAECwbY-

QEsHfbKsDSCF6134JPG)

圖 29 農產品履歷

(出處 httpwaterbeeblogspotcom200806qr-codehtml)

23 二維條碼 - QR Code 介紹

QR Code 簡介

QR Code 原名Quick Response Code (快速反應碼)

是由日本一家叫 Denso-Wave的公司於 1994 年發明的二維條碼最早應用於工廠

生產線零件追蹤用因為其面積小又可以容納英數以外的字元如中文 UTF-8

等比起一維條碼 QR Code更能儲存更多的資訊內容所以才慢慢被廣泛應用到

消費市場中

如今 QR Code已廣泛使用在各行業的物流管理QR Code比起部分條碼可儲

存更多資料也不像一般條碼在掃描時需要直線對準 Reader另外 QR Code有

容錯能力當 QR Code 圖形有破損在一定程度內仍可被 Reader讀取內容最高

可以容許 7~30面積的破損

QR Code 資料儲存

QR code 資料儲存的方法是將資料依照每種不同的模式規則轉換成 0 和 1

的 Bit 值放置在每個 module 內存放數字使用 Numeric mode 英文跟數字的

組合使用 Alphanumeric mode 中文編碼(UTF-8)使用 8-bit byte mode 日文

編碼(JIS X 0208)使用 Kanji mode不論是儲存英文中文數字符號經

過查表後得到對應的數值轉換成 2 進位 bit 值有些 mode 在轉換過程中有各

自不同的資料轉換計算方式經過計算的轉換後最後在數列的最前頭插入使用

的模式對應的 2 進位值用來告知表示使用的 Mode最後按照 QR code 的規則將

轉換後的 2進位值放置在每個 module中以 Numeric Mode 儲存 ldquo01234567rdquo

為例

Step1 以三個數字為一組拆對

012 345 67

Step2 十進位轉成二進位

012rarr0000001100

345rarr0101011001

67rarr1000011

Step3 結合轉換後的值

000000110001010110011000011

Step4 計算資料的字元總數並根據使用的 QR code版本將此總數的值轉換成

2進位

01234567( 8 characters)

10 bits for version-1 8rarr0000001000

Step5 Mode indicator+Step4 轉換的值+Step3 的值

Numeric Mode indicator 0001

0001 0000001000 000000110001010110011000011

QR Code 結構

QR Code 圖樣為一正方形一般為黑白兩色所構成左上左下右上三個

角落各印有一個像「回」字的圖案做為幫助解碼軟體定位掃描時不須對準無

論以任何角度都能正確讀取資料除了定位區塊剩下部份由資料儲存區塊及容

錯區塊所組成(圖 210 QR Code結構圖)

圖 210 QR Code 結構圖

QR code 容錯能力

為了避免因為圖形的損壞而導致資料的遺失使用 Reed-Solomon 演算法製

造出 Error Correction Code 儲存在資料容錯區中QR code分為四種等級 LM

QH分別大約為 7152530損壞恢復

定位用圖案

Position detection patterns

資料儲存區

Data Area

表 21 Version 表

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

圖目錄

圖 21 物流示意圖

圖 22 物流流程圖

圖 23 環形碼

圖 24 UPC碼

圖 25 消費券

圖 26 報紙上的新聞

圖 27 分享旅遊資訊

圖 28 購買火車票

圖 29 農產品履歷

圖 210 QR Code 結構圖

圖 211 圖資料分布圖

圖 212 用掃圖機掃瞄手機上的 QRcode

圖 213 取得送貨地點

圖 31 編碼程式流程圖

圖 32 解碼程式流程圖

圖 33 編碼 Encoder()流程圖

圖 34 手動輸入流程圖

圖 35 Decoder流程圖

圖 36 start按鍵流程圖

圖 37 check按鍵流程圖

圖 38 儲存圖檔流程圖

圖 41 專題系統流程

圖 42 Encoder介面

圖 43 輸入資料到 Encoder

圖 44 編碼成功

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

圖 47 Decoder介面

圖 48 對物品的 QRcode 解碼

圖 49 對客戶資訊做解碼

圖 410 物品資料與客戶資訊比對

表目錄

表 21 Version 表

表 22 表容錯等級與容錯率

第一章 專題計畫簡介

本章節針對專題計畫的整體目標做概略的介紹內容包含計畫動機大綱

工作分配及進度以及專題製作過程中所使用的開發工具

11專題計畫動機

以往在我們購買網路商品時到了超商取件時還要因為店員尋找貨

件而浪費了許多時間網路拍賣的貨件上還會有個人資料外洩的困擾此

時如果有一套軟體能告確切的告訴消費者取件的時間並且能改善店家收

件時的時間和隱私問題那該多好於是我們想到了 QuickResponse code

(QR 碼)就成為了我們解決的方法商家能收完件後店員利用掃 QRcode

結合我們開發的軟體能夠建檔增加搜尋貨品的效率此外我們在 QRcode

上還增加加密的功能來增加收件人的隱私當貨品寄到便利超商後

12 專題計劃大綱

當消費者要購買商品時商家可以製作一個消費者與商品共用的

QRcode然後寄給消費者當作收據之後消費者只要拿著這個 QRcode 去便

利商店給店員看店員掃碼後就可以知道貨品是否在店裡並且知道放置在

商店的何處其中掃碼的過程店員都不會知道買家的個人資訊因為貨品

上只有 QRcode我們要寫一個能夠的對比個人資料和貨品資訊的解碼程式

給便利超商方便店家讓消費者和商品確認的可靠性例如避免拿錯貨品之

情況發生並且減少尋找貨品上的時間

13 開發工具

本專題我們選用 JAVA來撰寫 QR Code 編碼及解碼程式其選擇的理由

在於專題準備期間瀏覽了許多日本開發 QR Code應用的相關文獻內容中的

應用程式大部分皆以手機做為應用的對象而市面手機程式目前以 JAVA撰

寫為多在考慮研讀資料取得的方便性及未來發展的實用性我們選用 JAVA

作為開發程式的語言

第二章 文獻探討

本章節簡述此次專題計畫於建置系統時所使用到的技術以及該技術的背景

與相關資料

21 物流網概念介紹

物流網概念簡述

物流就如字面上的意義是指物品之流動(流通)物流網可說是串連所有使

物品移動的相關活動其移動指的是為了從製造地(產地)將物品送達消費者手

中而經由運輸配送倉儲保管裝卸包裝流通加工與資訊情報等過程所伴隨

之所有作業活動連接生產地與消費者之間隔閡的各種作業則統稱為物流

圖 21 物流示意圖

製造地(生產)

消費者

廣義物流與狹義物流

廣義而言「物流」是指流程管理(management of a process)有學者稱為

「運籌管理」涵蓋從產品產製到銷售市場資訊的一連串活動如企業活動所包

含的資材物流生產物流銷售物流這些部分

狹義而言「物流」是指管理供應鏈(managing the supply chain)或稱為

銷售物流或商業物流其重點在於當物品經「商品化」之後從產地(農林

漁牧礦產品)或製造工廠產出再透過專業單位(物流中心)為商品做必須的

前置作業然後移動至下游的零售店家以期能達到減低成本提高效率的目的

圖 22 物流流程圖

資材物流 生產物流 銷售物流(狹義物流)

輸 送 輸 送 配 送

廣 義 物 流

工 廠

( 製造商 )

原料供應 生產 銷 售

物流扮演的角色

物流是中介協調者的角色在生產製造部門與零售消費部門之間商業物流

扮演著中間人的角色其主要營業項目為物流中心相關業務如商品之配送分

類暫存保管揀取流通加工採購及產品設計開發等其中商品配送這一

項目目前為物流中心之基本營業項目

物流是策略功能者的角色將產品及服務適時適地的交付予顧客乃是商

業物流最大的目的隨著資訊科技越來越發達物流活動從訂單倉儲配送等

傳統實體配送機能搖身一變成為策略性角色供應鏈管理(supply chain

management)與全球運籌管理(global logistics)的機制使物流管理已經變成

國內許多製造業的策略性議題

物流是虛擬連結者的角色「貨暢其流」乃是商業物流不斷追求的目標也

就是如何使商品能夠以低成本的代價而能精準度高地將商品由供應商快速移動

至零售店家

物流是需求偵測者的角色企業經營會儘可能降低存貨的成本因此在能

夠滿足顧客需求且不缺貨的前提下廠商希望能使存貨水準保持在最低的水準

物流是中立立場者的角色隨著商業物流策略性角色的出現物流經營也朝

專業化發展

22 條碼發展簡介

條碼起源

美國人 Joe Wood Land 和 Berny Silver為了研究食品代碼自動識別於 1949

年研發了第一款環形條碼(圖 211環形碼)(公牛眼)

圖 23 環形碼

實用條碼

來到 1960年代中期由於美國在日常生活中使用碼磅度量衡法(yard pound)

的8進位數6進位數因此 10 進位數的美元美分及消費稅的計算會花費不

少時間在現金交納處出現了顧客排起長龍等待付款的情況十分不便大型零

售店也無法發揮其快捷方便的功能為瞭解決排隊現象人們採取了各種解決方

法例如在商品上附上重量與商品價格相當的金屬最後一起加算金屬來計算金

額等但哪一種方法都未達到實用的水帄在這種形勢下1967 年著名超級

連鎖店 KROGAR 首次採取了將後來成為 UPC 原型的條碼附在商品上並通過電子

掃描器讀取輸入到電腦中的方法這就是商品條碼的起源

條碼統一

商品條碼進入實用階段後卻因為沒有統一的約定對所有商品附加號碼而無

法廣泛普及於是1973年以美國食品連鎖協會等為中心制定了「統一商品代

碼」(Universal Product Code UPC) (圖 24 UPC碼)

UPC碼結構由一組規則排列尺寸和顏色有一定規定的ldquo條rdquo

(Bar) ldquo空rdquo (Space) 及對應數位字元ldquo碼rdquo組成表示一定資訊的商品標

識ldquo條rdquo與ldquo空rdquo分別由深淺不同而且滿足一定光學對比度要求的兩種顏色

表示ldquo條rdquo為深色ldquo空rdquo為淺色這種ldquo條rdquoldquo空rdquo和相對應的字元ldquo碼rdquo

代表相同的資訊前者供掃描器讀識後者供人直接讀識或者通過鍵盤向電腦輸

入資料使用

圖 24 UPC 碼

行動條碼發展與應用

1 商品優惠券

在店家的官方網站上拍攝優惠券的 QRcode然後再購物時拿出 QRcode

的圖檔給店員掃圖取代傳統發 DM 所造成的垃圾汙染問題(圖 25)

2新聞資訊

在報章雜誌上刊登 QRcode來連結到線上播放軟體觀看最新的實況新

聞(圖 26)

3導覽系統

利用 QRcode 連結到網路做線上的導覽並且得知現在位置和其他景點

的相關位置方便各個觀光課使用(圖 27)

4商務交易

許多公司已推行利用 QRcode來購買商品也就是利用 QRcode 來連線到

交易網站然後來購買電影票或是火車票的功能(圖 28)

5商品資訊

在每個商品上做一個可以連結到此商品的線上資料庫使消費者清

楚的得知商品資訊不需要再去看商品上那密密麻麻的商品內容

了(圖 29)

圖 25 百貨公司 DM

(出處httpwwwqrdoorcomtwimagesqrwapqrwap06jpg)

圖 26 報紙上的新聞

(出處 httpwwwdigitalmasonscouk

shksprmobiblog200807unstoppable-rise-of-qr-codes-continu

eshtml)

圖 27 分享旅遊資訊

(出處

httpwwwbigmouthmediacomliveimagesgoogle-maps-with-qr-

codejpg )

圖 28 購買火車票

(出處

httplh6ggphtcom_CVujTYI3MDcR_vKopjcsDIAAAAAAAAECwbY-

QEsHfbKsDSCF6134JPG)

圖 29 農產品履歷

(出處 httpwaterbeeblogspotcom200806qr-codehtml)

23 二維條碼 - QR Code 介紹

QR Code 簡介

QR Code 原名Quick Response Code (快速反應碼)

是由日本一家叫 Denso-Wave的公司於 1994 年發明的二維條碼最早應用於工廠

生產線零件追蹤用因為其面積小又可以容納英數以外的字元如中文 UTF-8

等比起一維條碼 QR Code更能儲存更多的資訊內容所以才慢慢被廣泛應用到

消費市場中

如今 QR Code已廣泛使用在各行業的物流管理QR Code比起部分條碼可儲

存更多資料也不像一般條碼在掃描時需要直線對準 Reader另外 QR Code有

容錯能力當 QR Code 圖形有破損在一定程度內仍可被 Reader讀取內容最高

可以容許 7~30面積的破損

QR Code 資料儲存

QR code 資料儲存的方法是將資料依照每種不同的模式規則轉換成 0 和 1

的 Bit 值放置在每個 module 內存放數字使用 Numeric mode 英文跟數字的

組合使用 Alphanumeric mode 中文編碼(UTF-8)使用 8-bit byte mode 日文

編碼(JIS X 0208)使用 Kanji mode不論是儲存英文中文數字符號經

過查表後得到對應的數值轉換成 2 進位 bit 值有些 mode 在轉換過程中有各

自不同的資料轉換計算方式經過計算的轉換後最後在數列的最前頭插入使用

的模式對應的 2 進位值用來告知表示使用的 Mode最後按照 QR code 的規則將

轉換後的 2進位值放置在每個 module中以 Numeric Mode 儲存 ldquo01234567rdquo

為例

Step1 以三個數字為一組拆對

012 345 67

Step2 十進位轉成二進位

012rarr0000001100

345rarr0101011001

67rarr1000011

Step3 結合轉換後的值

000000110001010110011000011

Step4 計算資料的字元總數並根據使用的 QR code版本將此總數的值轉換成

2進位

01234567( 8 characters)

10 bits for version-1 8rarr0000001000

Step5 Mode indicator+Step4 轉換的值+Step3 的值

Numeric Mode indicator 0001

0001 0000001000 000000110001010110011000011

QR Code 結構

QR Code 圖樣為一正方形一般為黑白兩色所構成左上左下右上三個

角落各印有一個像「回」字的圖案做為幫助解碼軟體定位掃描時不須對準無

論以任何角度都能正確讀取資料除了定位區塊剩下部份由資料儲存區塊及容

錯區塊所組成(圖 210 QR Code結構圖)

圖 210 QR Code 結構圖

QR code 容錯能力

為了避免因為圖形的損壞而導致資料的遺失使用 Reed-Solomon 演算法製

造出 Error Correction Code 儲存在資料容錯區中QR code分為四種等級 LM

QH分別大約為 7152530損壞恢復

定位用圖案

Position detection patterns

資料儲存區

Data Area

表 21 Version 表

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

表目錄

表 21 Version 表

表 22 表容錯等級與容錯率

第一章 專題計畫簡介

本章節針對專題計畫的整體目標做概略的介紹內容包含計畫動機大綱

工作分配及進度以及專題製作過程中所使用的開發工具

11專題計畫動機

以往在我們購買網路商品時到了超商取件時還要因為店員尋找貨

件而浪費了許多時間網路拍賣的貨件上還會有個人資料外洩的困擾此

時如果有一套軟體能告確切的告訴消費者取件的時間並且能改善店家收

件時的時間和隱私問題那該多好於是我們想到了 QuickResponse code

(QR 碼)就成為了我們解決的方法商家能收完件後店員利用掃 QRcode

結合我們開發的軟體能夠建檔增加搜尋貨品的效率此外我們在 QRcode

上還增加加密的功能來增加收件人的隱私當貨品寄到便利超商後

12 專題計劃大綱

當消費者要購買商品時商家可以製作一個消費者與商品共用的

QRcode然後寄給消費者當作收據之後消費者只要拿著這個 QRcode 去便

利商店給店員看店員掃碼後就可以知道貨品是否在店裡並且知道放置在

商店的何處其中掃碼的過程店員都不會知道買家的個人資訊因為貨品

上只有 QRcode我們要寫一個能夠的對比個人資料和貨品資訊的解碼程式

給便利超商方便店家讓消費者和商品確認的可靠性例如避免拿錯貨品之

情況發生並且減少尋找貨品上的時間

13 開發工具

本專題我們選用 JAVA來撰寫 QR Code 編碼及解碼程式其選擇的理由

在於專題準備期間瀏覽了許多日本開發 QR Code應用的相關文獻內容中的

應用程式大部分皆以手機做為應用的對象而市面手機程式目前以 JAVA撰

寫為多在考慮研讀資料取得的方便性及未來發展的實用性我們選用 JAVA

作為開發程式的語言

第二章 文獻探討

本章節簡述此次專題計畫於建置系統時所使用到的技術以及該技術的背景

與相關資料

21 物流網概念介紹

物流網概念簡述

物流就如字面上的意義是指物品之流動(流通)物流網可說是串連所有使

物品移動的相關活動其移動指的是為了從製造地(產地)將物品送達消費者手

中而經由運輸配送倉儲保管裝卸包裝流通加工與資訊情報等過程所伴隨

之所有作業活動連接生產地與消費者之間隔閡的各種作業則統稱為物流

圖 21 物流示意圖

製造地(生產)

消費者

廣義物流與狹義物流

廣義而言「物流」是指流程管理(management of a process)有學者稱為

「運籌管理」涵蓋從產品產製到銷售市場資訊的一連串活動如企業活動所包

含的資材物流生產物流銷售物流這些部分

狹義而言「物流」是指管理供應鏈(managing the supply chain)或稱為

銷售物流或商業物流其重點在於當物品經「商品化」之後從產地(農林

漁牧礦產品)或製造工廠產出再透過專業單位(物流中心)為商品做必須的

前置作業然後移動至下游的零售店家以期能達到減低成本提高效率的目的

圖 22 物流流程圖

資材物流 生產物流 銷售物流(狹義物流)

輸 送 輸 送 配 送

廣 義 物 流

工 廠

( 製造商 )

原料供應 生產 銷 售

物流扮演的角色

物流是中介協調者的角色在生產製造部門與零售消費部門之間商業物流

扮演著中間人的角色其主要營業項目為物流中心相關業務如商品之配送分

類暫存保管揀取流通加工採購及產品設計開發等其中商品配送這一

項目目前為物流中心之基本營業項目

物流是策略功能者的角色將產品及服務適時適地的交付予顧客乃是商

業物流最大的目的隨著資訊科技越來越發達物流活動從訂單倉儲配送等

傳統實體配送機能搖身一變成為策略性角色供應鏈管理(supply chain

management)與全球運籌管理(global logistics)的機制使物流管理已經變成

國內許多製造業的策略性議題

物流是虛擬連結者的角色「貨暢其流」乃是商業物流不斷追求的目標也

就是如何使商品能夠以低成本的代價而能精準度高地將商品由供應商快速移動

至零售店家

物流是需求偵測者的角色企業經營會儘可能降低存貨的成本因此在能

夠滿足顧客需求且不缺貨的前提下廠商希望能使存貨水準保持在最低的水準

物流是中立立場者的角色隨著商業物流策略性角色的出現物流經營也朝

專業化發展

22 條碼發展簡介

條碼起源

美國人 Joe Wood Land 和 Berny Silver為了研究食品代碼自動識別於 1949

年研發了第一款環形條碼(圖 211環形碼)(公牛眼)

圖 23 環形碼

實用條碼

來到 1960年代中期由於美國在日常生活中使用碼磅度量衡法(yard pound)

的8進位數6進位數因此 10 進位數的美元美分及消費稅的計算會花費不

少時間在現金交納處出現了顧客排起長龍等待付款的情況十分不便大型零

售店也無法發揮其快捷方便的功能為瞭解決排隊現象人們採取了各種解決方

法例如在商品上附上重量與商品價格相當的金屬最後一起加算金屬來計算金

額等但哪一種方法都未達到實用的水帄在這種形勢下1967 年著名超級

連鎖店 KROGAR 首次採取了將後來成為 UPC 原型的條碼附在商品上並通過電子

掃描器讀取輸入到電腦中的方法這就是商品條碼的起源

條碼統一

商品條碼進入實用階段後卻因為沒有統一的約定對所有商品附加號碼而無

法廣泛普及於是1973年以美國食品連鎖協會等為中心制定了「統一商品代

碼」(Universal Product Code UPC) (圖 24 UPC碼)

UPC碼結構由一組規則排列尺寸和顏色有一定規定的ldquo條rdquo

(Bar) ldquo空rdquo (Space) 及對應數位字元ldquo碼rdquo組成表示一定資訊的商品標

識ldquo條rdquo與ldquo空rdquo分別由深淺不同而且滿足一定光學對比度要求的兩種顏色

表示ldquo條rdquo為深色ldquo空rdquo為淺色這種ldquo條rdquoldquo空rdquo和相對應的字元ldquo碼rdquo

代表相同的資訊前者供掃描器讀識後者供人直接讀識或者通過鍵盤向電腦輸

入資料使用

圖 24 UPC 碼

行動條碼發展與應用

1 商品優惠券

在店家的官方網站上拍攝優惠券的 QRcode然後再購物時拿出 QRcode

的圖檔給店員掃圖取代傳統發 DM 所造成的垃圾汙染問題(圖 25)

2新聞資訊

在報章雜誌上刊登 QRcode來連結到線上播放軟體觀看最新的實況新

聞(圖 26)

3導覽系統

利用 QRcode 連結到網路做線上的導覽並且得知現在位置和其他景點

的相關位置方便各個觀光課使用(圖 27)

4商務交易

許多公司已推行利用 QRcode來購買商品也就是利用 QRcode 來連線到

交易網站然後來購買電影票或是火車票的功能(圖 28)

5商品資訊

在每個商品上做一個可以連結到此商品的線上資料庫使消費者清

楚的得知商品資訊不需要再去看商品上那密密麻麻的商品內容

了(圖 29)

圖 25 百貨公司 DM

(出處httpwwwqrdoorcomtwimagesqrwapqrwap06jpg)

圖 26 報紙上的新聞

(出處 httpwwwdigitalmasonscouk

shksprmobiblog200807unstoppable-rise-of-qr-codes-continu

eshtml)

圖 27 分享旅遊資訊

(出處

httpwwwbigmouthmediacomliveimagesgoogle-maps-with-qr-

codejpg )

圖 28 購買火車票

(出處

httplh6ggphtcom_CVujTYI3MDcR_vKopjcsDIAAAAAAAAECwbY-

QEsHfbKsDSCF6134JPG)

圖 29 農產品履歷

(出處 httpwaterbeeblogspotcom200806qr-codehtml)

23 二維條碼 - QR Code 介紹

QR Code 簡介

QR Code 原名Quick Response Code (快速反應碼)

是由日本一家叫 Denso-Wave的公司於 1994 年發明的二維條碼最早應用於工廠

生產線零件追蹤用因為其面積小又可以容納英數以外的字元如中文 UTF-8

等比起一維條碼 QR Code更能儲存更多的資訊內容所以才慢慢被廣泛應用到

消費市場中

如今 QR Code已廣泛使用在各行業的物流管理QR Code比起部分條碼可儲

存更多資料也不像一般條碼在掃描時需要直線對準 Reader另外 QR Code有

容錯能力當 QR Code 圖形有破損在一定程度內仍可被 Reader讀取內容最高

可以容許 7~30面積的破損

QR Code 資料儲存

QR code 資料儲存的方法是將資料依照每種不同的模式規則轉換成 0 和 1

的 Bit 值放置在每個 module 內存放數字使用 Numeric mode 英文跟數字的

組合使用 Alphanumeric mode 中文編碼(UTF-8)使用 8-bit byte mode 日文

編碼(JIS X 0208)使用 Kanji mode不論是儲存英文中文數字符號經

過查表後得到對應的數值轉換成 2 進位 bit 值有些 mode 在轉換過程中有各

自不同的資料轉換計算方式經過計算的轉換後最後在數列的最前頭插入使用

的模式對應的 2 進位值用來告知表示使用的 Mode最後按照 QR code 的規則將

轉換後的 2進位值放置在每個 module中以 Numeric Mode 儲存 ldquo01234567rdquo

為例

Step1 以三個數字為一組拆對

012 345 67

Step2 十進位轉成二進位

012rarr0000001100

345rarr0101011001

67rarr1000011

Step3 結合轉換後的值

000000110001010110011000011

Step4 計算資料的字元總數並根據使用的 QR code版本將此總數的值轉換成

2進位

01234567( 8 characters)

10 bits for version-1 8rarr0000001000

Step5 Mode indicator+Step4 轉換的值+Step3 的值

Numeric Mode indicator 0001

0001 0000001000 000000110001010110011000011

QR Code 結構

QR Code 圖樣為一正方形一般為黑白兩色所構成左上左下右上三個

角落各印有一個像「回」字的圖案做為幫助解碼軟體定位掃描時不須對準無

論以任何角度都能正確讀取資料除了定位區塊剩下部份由資料儲存區塊及容

錯區塊所組成(圖 210 QR Code結構圖)

圖 210 QR Code 結構圖

QR code 容錯能力

為了避免因為圖形的損壞而導致資料的遺失使用 Reed-Solomon 演算法製

造出 Error Correction Code 儲存在資料容錯區中QR code分為四種等級 LM

QH分別大約為 7152530損壞恢復

定位用圖案

Position detection patterns

資料儲存區

Data Area

表 21 Version 表

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

第一章 專題計畫簡介

本章節針對專題計畫的整體目標做概略的介紹內容包含計畫動機大綱

工作分配及進度以及專題製作過程中所使用的開發工具

11專題計畫動機

以往在我們購買網路商品時到了超商取件時還要因為店員尋找貨

件而浪費了許多時間網路拍賣的貨件上還會有個人資料外洩的困擾此

時如果有一套軟體能告確切的告訴消費者取件的時間並且能改善店家收

件時的時間和隱私問題那該多好於是我們想到了 QuickResponse code

(QR 碼)就成為了我們解決的方法商家能收完件後店員利用掃 QRcode

結合我們開發的軟體能夠建檔增加搜尋貨品的效率此外我們在 QRcode

上還增加加密的功能來增加收件人的隱私當貨品寄到便利超商後

12 專題計劃大綱

當消費者要購買商品時商家可以製作一個消費者與商品共用的

QRcode然後寄給消費者當作收據之後消費者只要拿著這個 QRcode 去便

利商店給店員看店員掃碼後就可以知道貨品是否在店裡並且知道放置在

商店的何處其中掃碼的過程店員都不會知道買家的個人資訊因為貨品

上只有 QRcode我們要寫一個能夠的對比個人資料和貨品資訊的解碼程式

給便利超商方便店家讓消費者和商品確認的可靠性例如避免拿錯貨品之

情況發生並且減少尋找貨品上的時間

13 開發工具

本專題我們選用 JAVA來撰寫 QR Code 編碼及解碼程式其選擇的理由

在於專題準備期間瀏覽了許多日本開發 QR Code應用的相關文獻內容中的

應用程式大部分皆以手機做為應用的對象而市面手機程式目前以 JAVA撰

寫為多在考慮研讀資料取得的方便性及未來發展的實用性我們選用 JAVA

作為開發程式的語言

第二章 文獻探討

本章節簡述此次專題計畫於建置系統時所使用到的技術以及該技術的背景

與相關資料

21 物流網概念介紹

物流網概念簡述

物流就如字面上的意義是指物品之流動(流通)物流網可說是串連所有使

物品移動的相關活動其移動指的是為了從製造地(產地)將物品送達消費者手

中而經由運輸配送倉儲保管裝卸包裝流通加工與資訊情報等過程所伴隨

之所有作業活動連接生產地與消費者之間隔閡的各種作業則統稱為物流

圖 21 物流示意圖

製造地(生產)

消費者

廣義物流與狹義物流

廣義而言「物流」是指流程管理(management of a process)有學者稱為

「運籌管理」涵蓋從產品產製到銷售市場資訊的一連串活動如企業活動所包

含的資材物流生產物流銷售物流這些部分

狹義而言「物流」是指管理供應鏈(managing the supply chain)或稱為

銷售物流或商業物流其重點在於當物品經「商品化」之後從產地(農林

漁牧礦產品)或製造工廠產出再透過專業單位(物流中心)為商品做必須的

前置作業然後移動至下游的零售店家以期能達到減低成本提高效率的目的

圖 22 物流流程圖

資材物流 生產物流 銷售物流(狹義物流)

輸 送 輸 送 配 送

廣 義 物 流

工 廠

( 製造商 )

原料供應 生產 銷 售

物流扮演的角色

物流是中介協調者的角色在生產製造部門與零售消費部門之間商業物流

扮演著中間人的角色其主要營業項目為物流中心相關業務如商品之配送分

類暫存保管揀取流通加工採購及產品設計開發等其中商品配送這一

項目目前為物流中心之基本營業項目

物流是策略功能者的角色將產品及服務適時適地的交付予顧客乃是商

業物流最大的目的隨著資訊科技越來越發達物流活動從訂單倉儲配送等

傳統實體配送機能搖身一變成為策略性角色供應鏈管理(supply chain

management)與全球運籌管理(global logistics)的機制使物流管理已經變成

國內許多製造業的策略性議題

物流是虛擬連結者的角色「貨暢其流」乃是商業物流不斷追求的目標也

就是如何使商品能夠以低成本的代價而能精準度高地將商品由供應商快速移動

至零售店家

物流是需求偵測者的角色企業經營會儘可能降低存貨的成本因此在能

夠滿足顧客需求且不缺貨的前提下廠商希望能使存貨水準保持在最低的水準

物流是中立立場者的角色隨著商業物流策略性角色的出現物流經營也朝

專業化發展

22 條碼發展簡介

條碼起源

美國人 Joe Wood Land 和 Berny Silver為了研究食品代碼自動識別於 1949

年研發了第一款環形條碼(圖 211環形碼)(公牛眼)

圖 23 環形碼

實用條碼

來到 1960年代中期由於美國在日常生活中使用碼磅度量衡法(yard pound)

的8進位數6進位數因此 10 進位數的美元美分及消費稅的計算會花費不

少時間在現金交納處出現了顧客排起長龍等待付款的情況十分不便大型零

售店也無法發揮其快捷方便的功能為瞭解決排隊現象人們採取了各種解決方

法例如在商品上附上重量與商品價格相當的金屬最後一起加算金屬來計算金

額等但哪一種方法都未達到實用的水帄在這種形勢下1967 年著名超級

連鎖店 KROGAR 首次採取了將後來成為 UPC 原型的條碼附在商品上並通過電子

掃描器讀取輸入到電腦中的方法這就是商品條碼的起源

條碼統一

商品條碼進入實用階段後卻因為沒有統一的約定對所有商品附加號碼而無

法廣泛普及於是1973年以美國食品連鎖協會等為中心制定了「統一商品代

碼」(Universal Product Code UPC) (圖 24 UPC碼)

UPC碼結構由一組規則排列尺寸和顏色有一定規定的ldquo條rdquo

(Bar) ldquo空rdquo (Space) 及對應數位字元ldquo碼rdquo組成表示一定資訊的商品標

識ldquo條rdquo與ldquo空rdquo分別由深淺不同而且滿足一定光學對比度要求的兩種顏色

表示ldquo條rdquo為深色ldquo空rdquo為淺色這種ldquo條rdquoldquo空rdquo和相對應的字元ldquo碼rdquo

代表相同的資訊前者供掃描器讀識後者供人直接讀識或者通過鍵盤向電腦輸

入資料使用

圖 24 UPC 碼

行動條碼發展與應用

1 商品優惠券

在店家的官方網站上拍攝優惠券的 QRcode然後再購物時拿出 QRcode

的圖檔給店員掃圖取代傳統發 DM 所造成的垃圾汙染問題(圖 25)

2新聞資訊

在報章雜誌上刊登 QRcode來連結到線上播放軟體觀看最新的實況新

聞(圖 26)

3導覽系統

利用 QRcode 連結到網路做線上的導覽並且得知現在位置和其他景點

的相關位置方便各個觀光課使用(圖 27)

4商務交易

許多公司已推行利用 QRcode來購買商品也就是利用 QRcode 來連線到

交易網站然後來購買電影票或是火車票的功能(圖 28)

5商品資訊

在每個商品上做一個可以連結到此商品的線上資料庫使消費者清

楚的得知商品資訊不需要再去看商品上那密密麻麻的商品內容

了(圖 29)

圖 25 百貨公司 DM

(出處httpwwwqrdoorcomtwimagesqrwapqrwap06jpg)

圖 26 報紙上的新聞

(出處 httpwwwdigitalmasonscouk

shksprmobiblog200807unstoppable-rise-of-qr-codes-continu

eshtml)

圖 27 分享旅遊資訊

(出處

httpwwwbigmouthmediacomliveimagesgoogle-maps-with-qr-

codejpg )

圖 28 購買火車票

(出處

httplh6ggphtcom_CVujTYI3MDcR_vKopjcsDIAAAAAAAAECwbY-

QEsHfbKsDSCF6134JPG)

圖 29 農產品履歷

(出處 httpwaterbeeblogspotcom200806qr-codehtml)

23 二維條碼 - QR Code 介紹

QR Code 簡介

QR Code 原名Quick Response Code (快速反應碼)

是由日本一家叫 Denso-Wave的公司於 1994 年發明的二維條碼最早應用於工廠

生產線零件追蹤用因為其面積小又可以容納英數以外的字元如中文 UTF-8

等比起一維條碼 QR Code更能儲存更多的資訊內容所以才慢慢被廣泛應用到

消費市場中

如今 QR Code已廣泛使用在各行業的物流管理QR Code比起部分條碼可儲

存更多資料也不像一般條碼在掃描時需要直線對準 Reader另外 QR Code有

容錯能力當 QR Code 圖形有破損在一定程度內仍可被 Reader讀取內容最高

可以容許 7~30面積的破損

QR Code 資料儲存

QR code 資料儲存的方法是將資料依照每種不同的模式規則轉換成 0 和 1

的 Bit 值放置在每個 module 內存放數字使用 Numeric mode 英文跟數字的

組合使用 Alphanumeric mode 中文編碼(UTF-8)使用 8-bit byte mode 日文

編碼(JIS X 0208)使用 Kanji mode不論是儲存英文中文數字符號經

過查表後得到對應的數值轉換成 2 進位 bit 值有些 mode 在轉換過程中有各

自不同的資料轉換計算方式經過計算的轉換後最後在數列的最前頭插入使用

的模式對應的 2 進位值用來告知表示使用的 Mode最後按照 QR code 的規則將

轉換後的 2進位值放置在每個 module中以 Numeric Mode 儲存 ldquo01234567rdquo

為例

Step1 以三個數字為一組拆對

012 345 67

Step2 十進位轉成二進位

012rarr0000001100

345rarr0101011001

67rarr1000011

Step3 結合轉換後的值

000000110001010110011000011

Step4 計算資料的字元總數並根據使用的 QR code版本將此總數的值轉換成

2進位

01234567( 8 characters)

10 bits for version-1 8rarr0000001000

Step5 Mode indicator+Step4 轉換的值+Step3 的值

Numeric Mode indicator 0001

0001 0000001000 000000110001010110011000011

QR Code 結構

QR Code 圖樣為一正方形一般為黑白兩色所構成左上左下右上三個

角落各印有一個像「回」字的圖案做為幫助解碼軟體定位掃描時不須對準無

論以任何角度都能正確讀取資料除了定位區塊剩下部份由資料儲存區塊及容

錯區塊所組成(圖 210 QR Code結構圖)

圖 210 QR Code 結構圖

QR code 容錯能力

為了避免因為圖形的損壞而導致資料的遺失使用 Reed-Solomon 演算法製

造出 Error Correction Code 儲存在資料容錯區中QR code分為四種等級 LM

QH分別大約為 7152530損壞恢復

定位用圖案

Position detection patterns

資料儲存區

Data Area

表 21 Version 表

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

第二章 文獻探討

本章節簡述此次專題計畫於建置系統時所使用到的技術以及該技術的背景

與相關資料

21 物流網概念介紹

物流網概念簡述

物流就如字面上的意義是指物品之流動(流通)物流網可說是串連所有使

物品移動的相關活動其移動指的是為了從製造地(產地)將物品送達消費者手

中而經由運輸配送倉儲保管裝卸包裝流通加工與資訊情報等過程所伴隨

之所有作業活動連接生產地與消費者之間隔閡的各種作業則統稱為物流

圖 21 物流示意圖

製造地(生產)

消費者

廣義物流與狹義物流

廣義而言「物流」是指流程管理(management of a process)有學者稱為

「運籌管理」涵蓋從產品產製到銷售市場資訊的一連串活動如企業活動所包

含的資材物流生產物流銷售物流這些部分

狹義而言「物流」是指管理供應鏈(managing the supply chain)或稱為

銷售物流或商業物流其重點在於當物品經「商品化」之後從產地(農林

漁牧礦產品)或製造工廠產出再透過專業單位(物流中心)為商品做必須的

前置作業然後移動至下游的零售店家以期能達到減低成本提高效率的目的

圖 22 物流流程圖

資材物流 生產物流 銷售物流(狹義物流)

輸 送 輸 送 配 送

廣 義 物 流

工 廠

( 製造商 )

原料供應 生產 銷 售

物流扮演的角色

物流是中介協調者的角色在生產製造部門與零售消費部門之間商業物流

扮演著中間人的角色其主要營業項目為物流中心相關業務如商品之配送分

類暫存保管揀取流通加工採購及產品設計開發等其中商品配送這一

項目目前為物流中心之基本營業項目

物流是策略功能者的角色將產品及服務適時適地的交付予顧客乃是商

業物流最大的目的隨著資訊科技越來越發達物流活動從訂單倉儲配送等

傳統實體配送機能搖身一變成為策略性角色供應鏈管理(supply chain

management)與全球運籌管理(global logistics)的機制使物流管理已經變成

國內許多製造業的策略性議題

物流是虛擬連結者的角色「貨暢其流」乃是商業物流不斷追求的目標也

就是如何使商品能夠以低成本的代價而能精準度高地將商品由供應商快速移動

至零售店家

物流是需求偵測者的角色企業經營會儘可能降低存貨的成本因此在能

夠滿足顧客需求且不缺貨的前提下廠商希望能使存貨水準保持在最低的水準

物流是中立立場者的角色隨著商業物流策略性角色的出現物流經營也朝

專業化發展

22 條碼發展簡介

條碼起源

美國人 Joe Wood Land 和 Berny Silver為了研究食品代碼自動識別於 1949

年研發了第一款環形條碼(圖 211環形碼)(公牛眼)

圖 23 環形碼

實用條碼

來到 1960年代中期由於美國在日常生活中使用碼磅度量衡法(yard pound)

的8進位數6進位數因此 10 進位數的美元美分及消費稅的計算會花費不

少時間在現金交納處出現了顧客排起長龍等待付款的情況十分不便大型零

售店也無法發揮其快捷方便的功能為瞭解決排隊現象人們採取了各種解決方

法例如在商品上附上重量與商品價格相當的金屬最後一起加算金屬來計算金

額等但哪一種方法都未達到實用的水帄在這種形勢下1967 年著名超級

連鎖店 KROGAR 首次採取了將後來成為 UPC 原型的條碼附在商品上並通過電子

掃描器讀取輸入到電腦中的方法這就是商品條碼的起源

條碼統一

商品條碼進入實用階段後卻因為沒有統一的約定對所有商品附加號碼而無

法廣泛普及於是1973年以美國食品連鎖協會等為中心制定了「統一商品代

碼」(Universal Product Code UPC) (圖 24 UPC碼)

UPC碼結構由一組規則排列尺寸和顏色有一定規定的ldquo條rdquo

(Bar) ldquo空rdquo (Space) 及對應數位字元ldquo碼rdquo組成表示一定資訊的商品標

識ldquo條rdquo與ldquo空rdquo分別由深淺不同而且滿足一定光學對比度要求的兩種顏色

表示ldquo條rdquo為深色ldquo空rdquo為淺色這種ldquo條rdquoldquo空rdquo和相對應的字元ldquo碼rdquo

代表相同的資訊前者供掃描器讀識後者供人直接讀識或者通過鍵盤向電腦輸

入資料使用

圖 24 UPC 碼

行動條碼發展與應用

1 商品優惠券

在店家的官方網站上拍攝優惠券的 QRcode然後再購物時拿出 QRcode

的圖檔給店員掃圖取代傳統發 DM 所造成的垃圾汙染問題(圖 25)

2新聞資訊

在報章雜誌上刊登 QRcode來連結到線上播放軟體觀看最新的實況新

聞(圖 26)

3導覽系統

利用 QRcode 連結到網路做線上的導覽並且得知現在位置和其他景點

的相關位置方便各個觀光課使用(圖 27)

4商務交易

許多公司已推行利用 QRcode來購買商品也就是利用 QRcode 來連線到

交易網站然後來購買電影票或是火車票的功能(圖 28)

5商品資訊

在每個商品上做一個可以連結到此商品的線上資料庫使消費者清

楚的得知商品資訊不需要再去看商品上那密密麻麻的商品內容

了(圖 29)

圖 25 百貨公司 DM

(出處httpwwwqrdoorcomtwimagesqrwapqrwap06jpg)

圖 26 報紙上的新聞

(出處 httpwwwdigitalmasonscouk

shksprmobiblog200807unstoppable-rise-of-qr-codes-continu

eshtml)

圖 27 分享旅遊資訊

(出處

httpwwwbigmouthmediacomliveimagesgoogle-maps-with-qr-

codejpg )

圖 28 購買火車票

(出處

httplh6ggphtcom_CVujTYI3MDcR_vKopjcsDIAAAAAAAAECwbY-

QEsHfbKsDSCF6134JPG)

圖 29 農產品履歷

(出處 httpwaterbeeblogspotcom200806qr-codehtml)

23 二維條碼 - QR Code 介紹

QR Code 簡介

QR Code 原名Quick Response Code (快速反應碼)

是由日本一家叫 Denso-Wave的公司於 1994 年發明的二維條碼最早應用於工廠

生產線零件追蹤用因為其面積小又可以容納英數以外的字元如中文 UTF-8

等比起一維條碼 QR Code更能儲存更多的資訊內容所以才慢慢被廣泛應用到

消費市場中

如今 QR Code已廣泛使用在各行業的物流管理QR Code比起部分條碼可儲

存更多資料也不像一般條碼在掃描時需要直線對準 Reader另外 QR Code有

容錯能力當 QR Code 圖形有破損在一定程度內仍可被 Reader讀取內容最高

可以容許 7~30面積的破損

QR Code 資料儲存

QR code 資料儲存的方法是將資料依照每種不同的模式規則轉換成 0 和 1

的 Bit 值放置在每個 module 內存放數字使用 Numeric mode 英文跟數字的

組合使用 Alphanumeric mode 中文編碼(UTF-8)使用 8-bit byte mode 日文

編碼(JIS X 0208)使用 Kanji mode不論是儲存英文中文數字符號經

過查表後得到對應的數值轉換成 2 進位 bit 值有些 mode 在轉換過程中有各

自不同的資料轉換計算方式經過計算的轉換後最後在數列的最前頭插入使用

的模式對應的 2 進位值用來告知表示使用的 Mode最後按照 QR code 的規則將

轉換後的 2進位值放置在每個 module中以 Numeric Mode 儲存 ldquo01234567rdquo

為例

Step1 以三個數字為一組拆對

012 345 67

Step2 十進位轉成二進位

012rarr0000001100

345rarr0101011001

67rarr1000011

Step3 結合轉換後的值

000000110001010110011000011

Step4 計算資料的字元總數並根據使用的 QR code版本將此總數的值轉換成

2進位

01234567( 8 characters)

10 bits for version-1 8rarr0000001000

Step5 Mode indicator+Step4 轉換的值+Step3 的值

Numeric Mode indicator 0001

0001 0000001000 000000110001010110011000011

QR Code 結構

QR Code 圖樣為一正方形一般為黑白兩色所構成左上左下右上三個

角落各印有一個像「回」字的圖案做為幫助解碼軟體定位掃描時不須對準無

論以任何角度都能正確讀取資料除了定位區塊剩下部份由資料儲存區塊及容

錯區塊所組成(圖 210 QR Code結構圖)

圖 210 QR Code 結構圖

QR code 容錯能力

為了避免因為圖形的損壞而導致資料的遺失使用 Reed-Solomon 演算法製

造出 Error Correction Code 儲存在資料容錯區中QR code分為四種等級 LM

QH分別大約為 7152530損壞恢復

定位用圖案

Position detection patterns

資料儲存區

Data Area

表 21 Version 表

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

廣義物流與狹義物流

廣義而言「物流」是指流程管理(management of a process)有學者稱為

「運籌管理」涵蓋從產品產製到銷售市場資訊的一連串活動如企業活動所包

含的資材物流生產物流銷售物流這些部分

狹義而言「物流」是指管理供應鏈(managing the supply chain)或稱為

銷售物流或商業物流其重點在於當物品經「商品化」之後從產地(農林

漁牧礦產品)或製造工廠產出再透過專業單位(物流中心)為商品做必須的

前置作業然後移動至下游的零售店家以期能達到減低成本提高效率的目的

圖 22 物流流程圖

資材物流 生產物流 銷售物流(狹義物流)

輸 送 輸 送 配 送

廣 義 物 流

工 廠

( 製造商 )

原料供應 生產 銷 售

物流扮演的角色

物流是中介協調者的角色在生產製造部門與零售消費部門之間商業物流

扮演著中間人的角色其主要營業項目為物流中心相關業務如商品之配送分

類暫存保管揀取流通加工採購及產品設計開發等其中商品配送這一

項目目前為物流中心之基本營業項目

物流是策略功能者的角色將產品及服務適時適地的交付予顧客乃是商

業物流最大的目的隨著資訊科技越來越發達物流活動從訂單倉儲配送等

傳統實體配送機能搖身一變成為策略性角色供應鏈管理(supply chain

management)與全球運籌管理(global logistics)的機制使物流管理已經變成

國內許多製造業的策略性議題

物流是虛擬連結者的角色「貨暢其流」乃是商業物流不斷追求的目標也

就是如何使商品能夠以低成本的代價而能精準度高地將商品由供應商快速移動

至零售店家

物流是需求偵測者的角色企業經營會儘可能降低存貨的成本因此在能

夠滿足顧客需求且不缺貨的前提下廠商希望能使存貨水準保持在最低的水準

物流是中立立場者的角色隨著商業物流策略性角色的出現物流經營也朝

專業化發展

22 條碼發展簡介

條碼起源

美國人 Joe Wood Land 和 Berny Silver為了研究食品代碼自動識別於 1949

年研發了第一款環形條碼(圖 211環形碼)(公牛眼)

圖 23 環形碼

實用條碼

來到 1960年代中期由於美國在日常生活中使用碼磅度量衡法(yard pound)

的8進位數6進位數因此 10 進位數的美元美分及消費稅的計算會花費不

少時間在現金交納處出現了顧客排起長龍等待付款的情況十分不便大型零

售店也無法發揮其快捷方便的功能為瞭解決排隊現象人們採取了各種解決方

法例如在商品上附上重量與商品價格相當的金屬最後一起加算金屬來計算金

額等但哪一種方法都未達到實用的水帄在這種形勢下1967 年著名超級

連鎖店 KROGAR 首次採取了將後來成為 UPC 原型的條碼附在商品上並通過電子

掃描器讀取輸入到電腦中的方法這就是商品條碼的起源

條碼統一

商品條碼進入實用階段後卻因為沒有統一的約定對所有商品附加號碼而無

法廣泛普及於是1973年以美國食品連鎖協會等為中心制定了「統一商品代

碼」(Universal Product Code UPC) (圖 24 UPC碼)

UPC碼結構由一組規則排列尺寸和顏色有一定規定的ldquo條rdquo

(Bar) ldquo空rdquo (Space) 及對應數位字元ldquo碼rdquo組成表示一定資訊的商品標

識ldquo條rdquo與ldquo空rdquo分別由深淺不同而且滿足一定光學對比度要求的兩種顏色

表示ldquo條rdquo為深色ldquo空rdquo為淺色這種ldquo條rdquoldquo空rdquo和相對應的字元ldquo碼rdquo

代表相同的資訊前者供掃描器讀識後者供人直接讀識或者通過鍵盤向電腦輸

入資料使用

圖 24 UPC 碼

行動條碼發展與應用

1 商品優惠券

在店家的官方網站上拍攝優惠券的 QRcode然後再購物時拿出 QRcode

的圖檔給店員掃圖取代傳統發 DM 所造成的垃圾汙染問題(圖 25)

2新聞資訊

在報章雜誌上刊登 QRcode來連結到線上播放軟體觀看最新的實況新

聞(圖 26)

3導覽系統

利用 QRcode 連結到網路做線上的導覽並且得知現在位置和其他景點

的相關位置方便各個觀光課使用(圖 27)

4商務交易

許多公司已推行利用 QRcode來購買商品也就是利用 QRcode 來連線到

交易網站然後來購買電影票或是火車票的功能(圖 28)

5商品資訊

在每個商品上做一個可以連結到此商品的線上資料庫使消費者清

楚的得知商品資訊不需要再去看商品上那密密麻麻的商品內容

了(圖 29)

圖 25 百貨公司 DM

(出處httpwwwqrdoorcomtwimagesqrwapqrwap06jpg)

圖 26 報紙上的新聞

(出處 httpwwwdigitalmasonscouk

shksprmobiblog200807unstoppable-rise-of-qr-codes-continu

eshtml)

圖 27 分享旅遊資訊

(出處

httpwwwbigmouthmediacomliveimagesgoogle-maps-with-qr-

codejpg )

圖 28 購買火車票

(出處

httplh6ggphtcom_CVujTYI3MDcR_vKopjcsDIAAAAAAAAECwbY-

QEsHfbKsDSCF6134JPG)

圖 29 農產品履歷

(出處 httpwaterbeeblogspotcom200806qr-codehtml)

23 二維條碼 - QR Code 介紹

QR Code 簡介

QR Code 原名Quick Response Code (快速反應碼)

是由日本一家叫 Denso-Wave的公司於 1994 年發明的二維條碼最早應用於工廠

生產線零件追蹤用因為其面積小又可以容納英數以外的字元如中文 UTF-8

等比起一維條碼 QR Code更能儲存更多的資訊內容所以才慢慢被廣泛應用到

消費市場中

如今 QR Code已廣泛使用在各行業的物流管理QR Code比起部分條碼可儲

存更多資料也不像一般條碼在掃描時需要直線對準 Reader另外 QR Code有

容錯能力當 QR Code 圖形有破損在一定程度內仍可被 Reader讀取內容最高

可以容許 7~30面積的破損

QR Code 資料儲存

QR code 資料儲存的方法是將資料依照每種不同的模式規則轉換成 0 和 1

的 Bit 值放置在每個 module 內存放數字使用 Numeric mode 英文跟數字的

組合使用 Alphanumeric mode 中文編碼(UTF-8)使用 8-bit byte mode 日文

編碼(JIS X 0208)使用 Kanji mode不論是儲存英文中文數字符號經

過查表後得到對應的數值轉換成 2 進位 bit 值有些 mode 在轉換過程中有各

自不同的資料轉換計算方式經過計算的轉換後最後在數列的最前頭插入使用

的模式對應的 2 進位值用來告知表示使用的 Mode最後按照 QR code 的規則將

轉換後的 2進位值放置在每個 module中以 Numeric Mode 儲存 ldquo01234567rdquo

為例

Step1 以三個數字為一組拆對

012 345 67

Step2 十進位轉成二進位

012rarr0000001100

345rarr0101011001

67rarr1000011

Step3 結合轉換後的值

000000110001010110011000011

Step4 計算資料的字元總數並根據使用的 QR code版本將此總數的值轉換成

2進位

01234567( 8 characters)

10 bits for version-1 8rarr0000001000

Step5 Mode indicator+Step4 轉換的值+Step3 的值

Numeric Mode indicator 0001

0001 0000001000 000000110001010110011000011

QR Code 結構

QR Code 圖樣為一正方形一般為黑白兩色所構成左上左下右上三個

角落各印有一個像「回」字的圖案做為幫助解碼軟體定位掃描時不須對準無

論以任何角度都能正確讀取資料除了定位區塊剩下部份由資料儲存區塊及容

錯區塊所組成(圖 210 QR Code結構圖)

圖 210 QR Code 結構圖

QR code 容錯能力

為了避免因為圖形的損壞而導致資料的遺失使用 Reed-Solomon 演算法製

造出 Error Correction Code 儲存在資料容錯區中QR code分為四種等級 LM

QH分別大約為 7152530損壞恢復

定位用圖案

Position detection patterns

資料儲存區

Data Area

表 21 Version 表

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

物流扮演的角色

物流是中介協調者的角色在生產製造部門與零售消費部門之間商業物流

扮演著中間人的角色其主要營業項目為物流中心相關業務如商品之配送分

類暫存保管揀取流通加工採購及產品設計開發等其中商品配送這一

項目目前為物流中心之基本營業項目

物流是策略功能者的角色將產品及服務適時適地的交付予顧客乃是商

業物流最大的目的隨著資訊科技越來越發達物流活動從訂單倉儲配送等

傳統實體配送機能搖身一變成為策略性角色供應鏈管理(supply chain

management)與全球運籌管理(global logistics)的機制使物流管理已經變成

國內許多製造業的策略性議題

物流是虛擬連結者的角色「貨暢其流」乃是商業物流不斷追求的目標也

就是如何使商品能夠以低成本的代價而能精準度高地將商品由供應商快速移動

至零售店家

物流是需求偵測者的角色企業經營會儘可能降低存貨的成本因此在能

夠滿足顧客需求且不缺貨的前提下廠商希望能使存貨水準保持在最低的水準

物流是中立立場者的角色隨著商業物流策略性角色的出現物流經營也朝

專業化發展

22 條碼發展簡介

條碼起源

美國人 Joe Wood Land 和 Berny Silver為了研究食品代碼自動識別於 1949

年研發了第一款環形條碼(圖 211環形碼)(公牛眼)

圖 23 環形碼

實用條碼

來到 1960年代中期由於美國在日常生活中使用碼磅度量衡法(yard pound)

的8進位數6進位數因此 10 進位數的美元美分及消費稅的計算會花費不

少時間在現金交納處出現了顧客排起長龍等待付款的情況十分不便大型零

售店也無法發揮其快捷方便的功能為瞭解決排隊現象人們採取了各種解決方

法例如在商品上附上重量與商品價格相當的金屬最後一起加算金屬來計算金

額等但哪一種方法都未達到實用的水帄在這種形勢下1967 年著名超級

連鎖店 KROGAR 首次採取了將後來成為 UPC 原型的條碼附在商品上並通過電子

掃描器讀取輸入到電腦中的方法這就是商品條碼的起源

條碼統一

商品條碼進入實用階段後卻因為沒有統一的約定對所有商品附加號碼而無

法廣泛普及於是1973年以美國食品連鎖協會等為中心制定了「統一商品代

碼」(Universal Product Code UPC) (圖 24 UPC碼)

UPC碼結構由一組規則排列尺寸和顏色有一定規定的ldquo條rdquo

(Bar) ldquo空rdquo (Space) 及對應數位字元ldquo碼rdquo組成表示一定資訊的商品標

識ldquo條rdquo與ldquo空rdquo分別由深淺不同而且滿足一定光學對比度要求的兩種顏色

表示ldquo條rdquo為深色ldquo空rdquo為淺色這種ldquo條rdquoldquo空rdquo和相對應的字元ldquo碼rdquo

代表相同的資訊前者供掃描器讀識後者供人直接讀識或者通過鍵盤向電腦輸

入資料使用

圖 24 UPC 碼

行動條碼發展與應用

1 商品優惠券

在店家的官方網站上拍攝優惠券的 QRcode然後再購物時拿出 QRcode

的圖檔給店員掃圖取代傳統發 DM 所造成的垃圾汙染問題(圖 25)

2新聞資訊

在報章雜誌上刊登 QRcode來連結到線上播放軟體觀看最新的實況新

聞(圖 26)

3導覽系統

利用 QRcode 連結到網路做線上的導覽並且得知現在位置和其他景點

的相關位置方便各個觀光課使用(圖 27)

4商務交易

許多公司已推行利用 QRcode來購買商品也就是利用 QRcode 來連線到

交易網站然後來購買電影票或是火車票的功能(圖 28)

5商品資訊

在每個商品上做一個可以連結到此商品的線上資料庫使消費者清

楚的得知商品資訊不需要再去看商品上那密密麻麻的商品內容

了(圖 29)

圖 25 百貨公司 DM

(出處httpwwwqrdoorcomtwimagesqrwapqrwap06jpg)

圖 26 報紙上的新聞

(出處 httpwwwdigitalmasonscouk

shksprmobiblog200807unstoppable-rise-of-qr-codes-continu

eshtml)

圖 27 分享旅遊資訊

(出處

httpwwwbigmouthmediacomliveimagesgoogle-maps-with-qr-

codejpg )

圖 28 購買火車票

(出處

httplh6ggphtcom_CVujTYI3MDcR_vKopjcsDIAAAAAAAAECwbY-

QEsHfbKsDSCF6134JPG)

圖 29 農產品履歷

(出處 httpwaterbeeblogspotcom200806qr-codehtml)

23 二維條碼 - QR Code 介紹

QR Code 簡介

QR Code 原名Quick Response Code (快速反應碼)

是由日本一家叫 Denso-Wave的公司於 1994 年發明的二維條碼最早應用於工廠

生產線零件追蹤用因為其面積小又可以容納英數以外的字元如中文 UTF-8

等比起一維條碼 QR Code更能儲存更多的資訊內容所以才慢慢被廣泛應用到

消費市場中

如今 QR Code已廣泛使用在各行業的物流管理QR Code比起部分條碼可儲

存更多資料也不像一般條碼在掃描時需要直線對準 Reader另外 QR Code有

容錯能力當 QR Code 圖形有破損在一定程度內仍可被 Reader讀取內容最高

可以容許 7~30面積的破損

QR Code 資料儲存

QR code 資料儲存的方法是將資料依照每種不同的模式規則轉換成 0 和 1

的 Bit 值放置在每個 module 內存放數字使用 Numeric mode 英文跟數字的

組合使用 Alphanumeric mode 中文編碼(UTF-8)使用 8-bit byte mode 日文

編碼(JIS X 0208)使用 Kanji mode不論是儲存英文中文數字符號經

過查表後得到對應的數值轉換成 2 進位 bit 值有些 mode 在轉換過程中有各

自不同的資料轉換計算方式經過計算的轉換後最後在數列的最前頭插入使用

的模式對應的 2 進位值用來告知表示使用的 Mode最後按照 QR code 的規則將

轉換後的 2進位值放置在每個 module中以 Numeric Mode 儲存 ldquo01234567rdquo

為例

Step1 以三個數字為一組拆對

012 345 67

Step2 十進位轉成二進位

012rarr0000001100

345rarr0101011001

67rarr1000011

Step3 結合轉換後的值

000000110001010110011000011

Step4 計算資料的字元總數並根據使用的 QR code版本將此總數的值轉換成

2進位

01234567( 8 characters)

10 bits for version-1 8rarr0000001000

Step5 Mode indicator+Step4 轉換的值+Step3 的值

Numeric Mode indicator 0001

0001 0000001000 000000110001010110011000011

QR Code 結構

QR Code 圖樣為一正方形一般為黑白兩色所構成左上左下右上三個

角落各印有一個像「回」字的圖案做為幫助解碼軟體定位掃描時不須對準無

論以任何角度都能正確讀取資料除了定位區塊剩下部份由資料儲存區塊及容

錯區塊所組成(圖 210 QR Code結構圖)

圖 210 QR Code 結構圖

QR code 容錯能力

為了避免因為圖形的損壞而導致資料的遺失使用 Reed-Solomon 演算法製

造出 Error Correction Code 儲存在資料容錯區中QR code分為四種等級 LM

QH分別大約為 7152530損壞恢復

定位用圖案

Position detection patterns

資料儲存區

Data Area

表 21 Version 表

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

22 條碼發展簡介

條碼起源

美國人 Joe Wood Land 和 Berny Silver為了研究食品代碼自動識別於 1949

年研發了第一款環形條碼(圖 211環形碼)(公牛眼)

圖 23 環形碼

實用條碼

來到 1960年代中期由於美國在日常生活中使用碼磅度量衡法(yard pound)

的8進位數6進位數因此 10 進位數的美元美分及消費稅的計算會花費不

少時間在現金交納處出現了顧客排起長龍等待付款的情況十分不便大型零

售店也無法發揮其快捷方便的功能為瞭解決排隊現象人們採取了各種解決方

法例如在商品上附上重量與商品價格相當的金屬最後一起加算金屬來計算金

額等但哪一種方法都未達到實用的水帄在這種形勢下1967 年著名超級

連鎖店 KROGAR 首次採取了將後來成為 UPC 原型的條碼附在商品上並通過電子

掃描器讀取輸入到電腦中的方法這就是商品條碼的起源

條碼統一

商品條碼進入實用階段後卻因為沒有統一的約定對所有商品附加號碼而無

法廣泛普及於是1973年以美國食品連鎖協會等為中心制定了「統一商品代

碼」(Universal Product Code UPC) (圖 24 UPC碼)

UPC碼結構由一組規則排列尺寸和顏色有一定規定的ldquo條rdquo

(Bar) ldquo空rdquo (Space) 及對應數位字元ldquo碼rdquo組成表示一定資訊的商品標

識ldquo條rdquo與ldquo空rdquo分別由深淺不同而且滿足一定光學對比度要求的兩種顏色

表示ldquo條rdquo為深色ldquo空rdquo為淺色這種ldquo條rdquoldquo空rdquo和相對應的字元ldquo碼rdquo

代表相同的資訊前者供掃描器讀識後者供人直接讀識或者通過鍵盤向電腦輸

入資料使用

圖 24 UPC 碼

行動條碼發展與應用

1 商品優惠券

在店家的官方網站上拍攝優惠券的 QRcode然後再購物時拿出 QRcode

的圖檔給店員掃圖取代傳統發 DM 所造成的垃圾汙染問題(圖 25)

2新聞資訊

在報章雜誌上刊登 QRcode來連結到線上播放軟體觀看最新的實況新

聞(圖 26)

3導覽系統

利用 QRcode 連結到網路做線上的導覽並且得知現在位置和其他景點

的相關位置方便各個觀光課使用(圖 27)

4商務交易

許多公司已推行利用 QRcode來購買商品也就是利用 QRcode 來連線到

交易網站然後來購買電影票或是火車票的功能(圖 28)

5商品資訊

在每個商品上做一個可以連結到此商品的線上資料庫使消費者清

楚的得知商品資訊不需要再去看商品上那密密麻麻的商品內容

了(圖 29)

圖 25 百貨公司 DM

(出處httpwwwqrdoorcomtwimagesqrwapqrwap06jpg)

圖 26 報紙上的新聞

(出處 httpwwwdigitalmasonscouk

shksprmobiblog200807unstoppable-rise-of-qr-codes-continu

eshtml)

圖 27 分享旅遊資訊

(出處

httpwwwbigmouthmediacomliveimagesgoogle-maps-with-qr-

codejpg )

圖 28 購買火車票

(出處

httplh6ggphtcom_CVujTYI3MDcR_vKopjcsDIAAAAAAAAECwbY-

QEsHfbKsDSCF6134JPG)

圖 29 農產品履歷

(出處 httpwaterbeeblogspotcom200806qr-codehtml)

23 二維條碼 - QR Code 介紹

QR Code 簡介

QR Code 原名Quick Response Code (快速反應碼)

是由日本一家叫 Denso-Wave的公司於 1994 年發明的二維條碼最早應用於工廠

生產線零件追蹤用因為其面積小又可以容納英數以外的字元如中文 UTF-8

等比起一維條碼 QR Code更能儲存更多的資訊內容所以才慢慢被廣泛應用到

消費市場中

如今 QR Code已廣泛使用在各行業的物流管理QR Code比起部分條碼可儲

存更多資料也不像一般條碼在掃描時需要直線對準 Reader另外 QR Code有

容錯能力當 QR Code 圖形有破損在一定程度內仍可被 Reader讀取內容最高

可以容許 7~30面積的破損

QR Code 資料儲存

QR code 資料儲存的方法是將資料依照每種不同的模式規則轉換成 0 和 1

的 Bit 值放置在每個 module 內存放數字使用 Numeric mode 英文跟數字的

組合使用 Alphanumeric mode 中文編碼(UTF-8)使用 8-bit byte mode 日文

編碼(JIS X 0208)使用 Kanji mode不論是儲存英文中文數字符號經

過查表後得到對應的數值轉換成 2 進位 bit 值有些 mode 在轉換過程中有各

自不同的資料轉換計算方式經過計算的轉換後最後在數列的最前頭插入使用

的模式對應的 2 進位值用來告知表示使用的 Mode最後按照 QR code 的規則將

轉換後的 2進位值放置在每個 module中以 Numeric Mode 儲存 ldquo01234567rdquo

為例

Step1 以三個數字為一組拆對

012 345 67

Step2 十進位轉成二進位

012rarr0000001100

345rarr0101011001

67rarr1000011

Step3 結合轉換後的值

000000110001010110011000011

Step4 計算資料的字元總數並根據使用的 QR code版本將此總數的值轉換成

2進位

01234567( 8 characters)

10 bits for version-1 8rarr0000001000

Step5 Mode indicator+Step4 轉換的值+Step3 的值

Numeric Mode indicator 0001

0001 0000001000 000000110001010110011000011

QR Code 結構

QR Code 圖樣為一正方形一般為黑白兩色所構成左上左下右上三個

角落各印有一個像「回」字的圖案做為幫助解碼軟體定位掃描時不須對準無

論以任何角度都能正確讀取資料除了定位區塊剩下部份由資料儲存區塊及容

錯區塊所組成(圖 210 QR Code結構圖)

圖 210 QR Code 結構圖

QR code 容錯能力

為了避免因為圖形的損壞而導致資料的遺失使用 Reed-Solomon 演算法製

造出 Error Correction Code 儲存在資料容錯區中QR code分為四種等級 LM

QH分別大約為 7152530損壞恢復

定位用圖案

Position detection patterns

資料儲存區

Data Area

表 21 Version 表

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

條碼統一

商品條碼進入實用階段後卻因為沒有統一的約定對所有商品附加號碼而無

法廣泛普及於是1973年以美國食品連鎖協會等為中心制定了「統一商品代

碼」(Universal Product Code UPC) (圖 24 UPC碼)

UPC碼結構由一組規則排列尺寸和顏色有一定規定的ldquo條rdquo

(Bar) ldquo空rdquo (Space) 及對應數位字元ldquo碼rdquo組成表示一定資訊的商品標

識ldquo條rdquo與ldquo空rdquo分別由深淺不同而且滿足一定光學對比度要求的兩種顏色

表示ldquo條rdquo為深色ldquo空rdquo為淺色這種ldquo條rdquoldquo空rdquo和相對應的字元ldquo碼rdquo

代表相同的資訊前者供掃描器讀識後者供人直接讀識或者通過鍵盤向電腦輸

入資料使用

圖 24 UPC 碼

行動條碼發展與應用

1 商品優惠券

在店家的官方網站上拍攝優惠券的 QRcode然後再購物時拿出 QRcode

的圖檔給店員掃圖取代傳統發 DM 所造成的垃圾汙染問題(圖 25)

2新聞資訊

在報章雜誌上刊登 QRcode來連結到線上播放軟體觀看最新的實況新

聞(圖 26)

3導覽系統

利用 QRcode 連結到網路做線上的導覽並且得知現在位置和其他景點

的相關位置方便各個觀光課使用(圖 27)

4商務交易

許多公司已推行利用 QRcode來購買商品也就是利用 QRcode 來連線到

交易網站然後來購買電影票或是火車票的功能(圖 28)

5商品資訊

在每個商品上做一個可以連結到此商品的線上資料庫使消費者清

楚的得知商品資訊不需要再去看商品上那密密麻麻的商品內容

了(圖 29)

圖 25 百貨公司 DM

(出處httpwwwqrdoorcomtwimagesqrwapqrwap06jpg)

圖 26 報紙上的新聞

(出處 httpwwwdigitalmasonscouk

shksprmobiblog200807unstoppable-rise-of-qr-codes-continu

eshtml)

圖 27 分享旅遊資訊

(出處

httpwwwbigmouthmediacomliveimagesgoogle-maps-with-qr-

codejpg )

圖 28 購買火車票

(出處

httplh6ggphtcom_CVujTYI3MDcR_vKopjcsDIAAAAAAAAECwbY-

QEsHfbKsDSCF6134JPG)

圖 29 農產品履歷

(出處 httpwaterbeeblogspotcom200806qr-codehtml)

23 二維條碼 - QR Code 介紹

QR Code 簡介

QR Code 原名Quick Response Code (快速反應碼)

是由日本一家叫 Denso-Wave的公司於 1994 年發明的二維條碼最早應用於工廠

生產線零件追蹤用因為其面積小又可以容納英數以外的字元如中文 UTF-8

等比起一維條碼 QR Code更能儲存更多的資訊內容所以才慢慢被廣泛應用到

消費市場中

如今 QR Code已廣泛使用在各行業的物流管理QR Code比起部分條碼可儲

存更多資料也不像一般條碼在掃描時需要直線對準 Reader另外 QR Code有

容錯能力當 QR Code 圖形有破損在一定程度內仍可被 Reader讀取內容最高

可以容許 7~30面積的破損

QR Code 資料儲存

QR code 資料儲存的方法是將資料依照每種不同的模式規則轉換成 0 和 1

的 Bit 值放置在每個 module 內存放數字使用 Numeric mode 英文跟數字的

組合使用 Alphanumeric mode 中文編碼(UTF-8)使用 8-bit byte mode 日文

編碼(JIS X 0208)使用 Kanji mode不論是儲存英文中文數字符號經

過查表後得到對應的數值轉換成 2 進位 bit 值有些 mode 在轉換過程中有各

自不同的資料轉換計算方式經過計算的轉換後最後在數列的最前頭插入使用

的模式對應的 2 進位值用來告知表示使用的 Mode最後按照 QR code 的規則將

轉換後的 2進位值放置在每個 module中以 Numeric Mode 儲存 ldquo01234567rdquo

為例

Step1 以三個數字為一組拆對

012 345 67

Step2 十進位轉成二進位

012rarr0000001100

345rarr0101011001

67rarr1000011

Step3 結合轉換後的值

000000110001010110011000011

Step4 計算資料的字元總數並根據使用的 QR code版本將此總數的值轉換成

2進位

01234567( 8 characters)

10 bits for version-1 8rarr0000001000

Step5 Mode indicator+Step4 轉換的值+Step3 的值

Numeric Mode indicator 0001

0001 0000001000 000000110001010110011000011

QR Code 結構

QR Code 圖樣為一正方形一般為黑白兩色所構成左上左下右上三個

角落各印有一個像「回」字的圖案做為幫助解碼軟體定位掃描時不須對準無

論以任何角度都能正確讀取資料除了定位區塊剩下部份由資料儲存區塊及容

錯區塊所組成(圖 210 QR Code結構圖)

圖 210 QR Code 結構圖

QR code 容錯能力

為了避免因為圖形的損壞而導致資料的遺失使用 Reed-Solomon 演算法製

造出 Error Correction Code 儲存在資料容錯區中QR code分為四種等級 LM

QH分別大約為 7152530損壞恢復

定位用圖案

Position detection patterns

資料儲存區

Data Area

表 21 Version 表

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

行動條碼發展與應用

1 商品優惠券

在店家的官方網站上拍攝優惠券的 QRcode然後再購物時拿出 QRcode

的圖檔給店員掃圖取代傳統發 DM 所造成的垃圾汙染問題(圖 25)

2新聞資訊

在報章雜誌上刊登 QRcode來連結到線上播放軟體觀看最新的實況新

聞(圖 26)

3導覽系統

利用 QRcode 連結到網路做線上的導覽並且得知現在位置和其他景點

的相關位置方便各個觀光課使用(圖 27)

4商務交易

許多公司已推行利用 QRcode來購買商品也就是利用 QRcode 來連線到

交易網站然後來購買電影票或是火車票的功能(圖 28)

5商品資訊

在每個商品上做一個可以連結到此商品的線上資料庫使消費者清

楚的得知商品資訊不需要再去看商品上那密密麻麻的商品內容

了(圖 29)

圖 25 百貨公司 DM

(出處httpwwwqrdoorcomtwimagesqrwapqrwap06jpg)

圖 26 報紙上的新聞

(出處 httpwwwdigitalmasonscouk

shksprmobiblog200807unstoppable-rise-of-qr-codes-continu

eshtml)

圖 27 分享旅遊資訊

(出處

httpwwwbigmouthmediacomliveimagesgoogle-maps-with-qr-

codejpg )

圖 28 購買火車票

(出處

httplh6ggphtcom_CVujTYI3MDcR_vKopjcsDIAAAAAAAAECwbY-

QEsHfbKsDSCF6134JPG)

圖 29 農產品履歷

(出處 httpwaterbeeblogspotcom200806qr-codehtml)

23 二維條碼 - QR Code 介紹

QR Code 簡介

QR Code 原名Quick Response Code (快速反應碼)

是由日本一家叫 Denso-Wave的公司於 1994 年發明的二維條碼最早應用於工廠

生產線零件追蹤用因為其面積小又可以容納英數以外的字元如中文 UTF-8

等比起一維條碼 QR Code更能儲存更多的資訊內容所以才慢慢被廣泛應用到

消費市場中

如今 QR Code已廣泛使用在各行業的物流管理QR Code比起部分條碼可儲

存更多資料也不像一般條碼在掃描時需要直線對準 Reader另外 QR Code有

容錯能力當 QR Code 圖形有破損在一定程度內仍可被 Reader讀取內容最高

可以容許 7~30面積的破損

QR Code 資料儲存

QR code 資料儲存的方法是將資料依照每種不同的模式規則轉換成 0 和 1

的 Bit 值放置在每個 module 內存放數字使用 Numeric mode 英文跟數字的

組合使用 Alphanumeric mode 中文編碼(UTF-8)使用 8-bit byte mode 日文

編碼(JIS X 0208)使用 Kanji mode不論是儲存英文中文數字符號經

過查表後得到對應的數值轉換成 2 進位 bit 值有些 mode 在轉換過程中有各

自不同的資料轉換計算方式經過計算的轉換後最後在數列的最前頭插入使用

的模式對應的 2 進位值用來告知表示使用的 Mode最後按照 QR code 的規則將

轉換後的 2進位值放置在每個 module中以 Numeric Mode 儲存 ldquo01234567rdquo

為例

Step1 以三個數字為一組拆對

012 345 67

Step2 十進位轉成二進位

012rarr0000001100

345rarr0101011001

67rarr1000011

Step3 結合轉換後的值

000000110001010110011000011

Step4 計算資料的字元總數並根據使用的 QR code版本將此總數的值轉換成

2進位

01234567( 8 characters)

10 bits for version-1 8rarr0000001000

Step5 Mode indicator+Step4 轉換的值+Step3 的值

Numeric Mode indicator 0001

0001 0000001000 000000110001010110011000011

QR Code 結構

QR Code 圖樣為一正方形一般為黑白兩色所構成左上左下右上三個

角落各印有一個像「回」字的圖案做為幫助解碼軟體定位掃描時不須對準無

論以任何角度都能正確讀取資料除了定位區塊剩下部份由資料儲存區塊及容

錯區塊所組成(圖 210 QR Code結構圖)

圖 210 QR Code 結構圖

QR code 容錯能力

為了避免因為圖形的損壞而導致資料的遺失使用 Reed-Solomon 演算法製

造出 Error Correction Code 儲存在資料容錯區中QR code分為四種等級 LM

QH分別大約為 7152530損壞恢復

定位用圖案

Position detection patterns

資料儲存區

Data Area

表 21 Version 表

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

圖 25 百貨公司 DM

(出處httpwwwqrdoorcomtwimagesqrwapqrwap06jpg)

圖 26 報紙上的新聞

(出處 httpwwwdigitalmasonscouk

shksprmobiblog200807unstoppable-rise-of-qr-codes-continu

eshtml)

圖 27 分享旅遊資訊

(出處

httpwwwbigmouthmediacomliveimagesgoogle-maps-with-qr-

codejpg )

圖 28 購買火車票

(出處

httplh6ggphtcom_CVujTYI3MDcR_vKopjcsDIAAAAAAAAECwbY-

QEsHfbKsDSCF6134JPG)

圖 29 農產品履歷

(出處 httpwaterbeeblogspotcom200806qr-codehtml)

23 二維條碼 - QR Code 介紹

QR Code 簡介

QR Code 原名Quick Response Code (快速反應碼)

是由日本一家叫 Denso-Wave的公司於 1994 年發明的二維條碼最早應用於工廠

生產線零件追蹤用因為其面積小又可以容納英數以外的字元如中文 UTF-8

等比起一維條碼 QR Code更能儲存更多的資訊內容所以才慢慢被廣泛應用到

消費市場中

如今 QR Code已廣泛使用在各行業的物流管理QR Code比起部分條碼可儲

存更多資料也不像一般條碼在掃描時需要直線對準 Reader另外 QR Code有

容錯能力當 QR Code 圖形有破損在一定程度內仍可被 Reader讀取內容最高

可以容許 7~30面積的破損

QR Code 資料儲存

QR code 資料儲存的方法是將資料依照每種不同的模式規則轉換成 0 和 1

的 Bit 值放置在每個 module 內存放數字使用 Numeric mode 英文跟數字的

組合使用 Alphanumeric mode 中文編碼(UTF-8)使用 8-bit byte mode 日文

編碼(JIS X 0208)使用 Kanji mode不論是儲存英文中文數字符號經

過查表後得到對應的數值轉換成 2 進位 bit 值有些 mode 在轉換過程中有各

自不同的資料轉換計算方式經過計算的轉換後最後在數列的最前頭插入使用

的模式對應的 2 進位值用來告知表示使用的 Mode最後按照 QR code 的規則將

轉換後的 2進位值放置在每個 module中以 Numeric Mode 儲存 ldquo01234567rdquo

為例

Step1 以三個數字為一組拆對

012 345 67

Step2 十進位轉成二進位

012rarr0000001100

345rarr0101011001

67rarr1000011

Step3 結合轉換後的值

000000110001010110011000011

Step4 計算資料的字元總數並根據使用的 QR code版本將此總數的值轉換成

2進位

01234567( 8 characters)

10 bits for version-1 8rarr0000001000

Step5 Mode indicator+Step4 轉換的值+Step3 的值

Numeric Mode indicator 0001

0001 0000001000 000000110001010110011000011

QR Code 結構

QR Code 圖樣為一正方形一般為黑白兩色所構成左上左下右上三個

角落各印有一個像「回」字的圖案做為幫助解碼軟體定位掃描時不須對準無

論以任何角度都能正確讀取資料除了定位區塊剩下部份由資料儲存區塊及容

錯區塊所組成(圖 210 QR Code結構圖)

圖 210 QR Code 結構圖

QR code 容錯能力

為了避免因為圖形的損壞而導致資料的遺失使用 Reed-Solomon 演算法製

造出 Error Correction Code 儲存在資料容錯區中QR code分為四種等級 LM

QH分別大約為 7152530損壞恢復

定位用圖案

Position detection patterns

資料儲存區

Data Area

表 21 Version 表

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

圖 27 分享旅遊資訊

(出處

httpwwwbigmouthmediacomliveimagesgoogle-maps-with-qr-

codejpg )

圖 28 購買火車票

(出處

httplh6ggphtcom_CVujTYI3MDcR_vKopjcsDIAAAAAAAAECwbY-

QEsHfbKsDSCF6134JPG)

圖 29 農產品履歷

(出處 httpwaterbeeblogspotcom200806qr-codehtml)

23 二維條碼 - QR Code 介紹

QR Code 簡介

QR Code 原名Quick Response Code (快速反應碼)

是由日本一家叫 Denso-Wave的公司於 1994 年發明的二維條碼最早應用於工廠

生產線零件追蹤用因為其面積小又可以容納英數以外的字元如中文 UTF-8

等比起一維條碼 QR Code更能儲存更多的資訊內容所以才慢慢被廣泛應用到

消費市場中

如今 QR Code已廣泛使用在各行業的物流管理QR Code比起部分條碼可儲

存更多資料也不像一般條碼在掃描時需要直線對準 Reader另外 QR Code有

容錯能力當 QR Code 圖形有破損在一定程度內仍可被 Reader讀取內容最高

可以容許 7~30面積的破損

QR Code 資料儲存

QR code 資料儲存的方法是將資料依照每種不同的模式規則轉換成 0 和 1

的 Bit 值放置在每個 module 內存放數字使用 Numeric mode 英文跟數字的

組合使用 Alphanumeric mode 中文編碼(UTF-8)使用 8-bit byte mode 日文

編碼(JIS X 0208)使用 Kanji mode不論是儲存英文中文數字符號經

過查表後得到對應的數值轉換成 2 進位 bit 值有些 mode 在轉換過程中有各

自不同的資料轉換計算方式經過計算的轉換後最後在數列的最前頭插入使用

的模式對應的 2 進位值用來告知表示使用的 Mode最後按照 QR code 的規則將

轉換後的 2進位值放置在每個 module中以 Numeric Mode 儲存 ldquo01234567rdquo

為例

Step1 以三個數字為一組拆對

012 345 67

Step2 十進位轉成二進位

012rarr0000001100

345rarr0101011001

67rarr1000011

Step3 結合轉換後的值

000000110001010110011000011

Step4 計算資料的字元總數並根據使用的 QR code版本將此總數的值轉換成

2進位

01234567( 8 characters)

10 bits for version-1 8rarr0000001000

Step5 Mode indicator+Step4 轉換的值+Step3 的值

Numeric Mode indicator 0001

0001 0000001000 000000110001010110011000011

QR Code 結構

QR Code 圖樣為一正方形一般為黑白兩色所構成左上左下右上三個

角落各印有一個像「回」字的圖案做為幫助解碼軟體定位掃描時不須對準無

論以任何角度都能正確讀取資料除了定位區塊剩下部份由資料儲存區塊及容

錯區塊所組成(圖 210 QR Code結構圖)

圖 210 QR Code 結構圖

QR code 容錯能力

為了避免因為圖形的損壞而導致資料的遺失使用 Reed-Solomon 演算法製

造出 Error Correction Code 儲存在資料容錯區中QR code分為四種等級 LM

QH分別大約為 7152530損壞恢復

定位用圖案

Position detection patterns

資料儲存區

Data Area

表 21 Version 表

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

圖 29 農產品履歷

(出處 httpwaterbeeblogspotcom200806qr-codehtml)

23 二維條碼 - QR Code 介紹

QR Code 簡介

QR Code 原名Quick Response Code (快速反應碼)

是由日本一家叫 Denso-Wave的公司於 1994 年發明的二維條碼最早應用於工廠

生產線零件追蹤用因為其面積小又可以容納英數以外的字元如中文 UTF-8

等比起一維條碼 QR Code更能儲存更多的資訊內容所以才慢慢被廣泛應用到

消費市場中

如今 QR Code已廣泛使用在各行業的物流管理QR Code比起部分條碼可儲

存更多資料也不像一般條碼在掃描時需要直線對準 Reader另外 QR Code有

容錯能力當 QR Code 圖形有破損在一定程度內仍可被 Reader讀取內容最高

可以容許 7~30面積的破損

QR Code 資料儲存

QR code 資料儲存的方法是將資料依照每種不同的模式規則轉換成 0 和 1

的 Bit 值放置在每個 module 內存放數字使用 Numeric mode 英文跟數字的

組合使用 Alphanumeric mode 中文編碼(UTF-8)使用 8-bit byte mode 日文

編碼(JIS X 0208)使用 Kanji mode不論是儲存英文中文數字符號經

過查表後得到對應的數值轉換成 2 進位 bit 值有些 mode 在轉換過程中有各

自不同的資料轉換計算方式經過計算的轉換後最後在數列的最前頭插入使用

的模式對應的 2 進位值用來告知表示使用的 Mode最後按照 QR code 的規則將

轉換後的 2進位值放置在每個 module中以 Numeric Mode 儲存 ldquo01234567rdquo

為例

Step1 以三個數字為一組拆對

012 345 67

Step2 十進位轉成二進位

012rarr0000001100

345rarr0101011001

67rarr1000011

Step3 結合轉換後的值

000000110001010110011000011

Step4 計算資料的字元總數並根據使用的 QR code版本將此總數的值轉換成

2進位

01234567( 8 characters)

10 bits for version-1 8rarr0000001000

Step5 Mode indicator+Step4 轉換的值+Step3 的值

Numeric Mode indicator 0001

0001 0000001000 000000110001010110011000011

QR Code 結構

QR Code 圖樣為一正方形一般為黑白兩色所構成左上左下右上三個

角落各印有一個像「回」字的圖案做為幫助解碼軟體定位掃描時不須對準無

論以任何角度都能正確讀取資料除了定位區塊剩下部份由資料儲存區塊及容

錯區塊所組成(圖 210 QR Code結構圖)

圖 210 QR Code 結構圖

QR code 容錯能力

為了避免因為圖形的損壞而導致資料的遺失使用 Reed-Solomon 演算法製

造出 Error Correction Code 儲存在資料容錯區中QR code分為四種等級 LM

QH分別大約為 7152530損壞恢復

定位用圖案

Position detection patterns

資料儲存區

Data Area

表 21 Version 表

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

QR Code 資料儲存

QR code 資料儲存的方法是將資料依照每種不同的模式規則轉換成 0 和 1

的 Bit 值放置在每個 module 內存放數字使用 Numeric mode 英文跟數字的

組合使用 Alphanumeric mode 中文編碼(UTF-8)使用 8-bit byte mode 日文

編碼(JIS X 0208)使用 Kanji mode不論是儲存英文中文數字符號經

過查表後得到對應的數值轉換成 2 進位 bit 值有些 mode 在轉換過程中有各

自不同的資料轉換計算方式經過計算的轉換後最後在數列的最前頭插入使用

的模式對應的 2 進位值用來告知表示使用的 Mode最後按照 QR code 的規則將

轉換後的 2進位值放置在每個 module中以 Numeric Mode 儲存 ldquo01234567rdquo

為例

Step1 以三個數字為一組拆對

012 345 67

Step2 十進位轉成二進位

012rarr0000001100

345rarr0101011001

67rarr1000011

Step3 結合轉換後的值

000000110001010110011000011

Step4 計算資料的字元總數並根據使用的 QR code版本將此總數的值轉換成

2進位

01234567( 8 characters)

10 bits for version-1 8rarr0000001000

Step5 Mode indicator+Step4 轉換的值+Step3 的值

Numeric Mode indicator 0001

0001 0000001000 000000110001010110011000011

QR Code 結構

QR Code 圖樣為一正方形一般為黑白兩色所構成左上左下右上三個

角落各印有一個像「回」字的圖案做為幫助解碼軟體定位掃描時不須對準無

論以任何角度都能正確讀取資料除了定位區塊剩下部份由資料儲存區塊及容

錯區塊所組成(圖 210 QR Code結構圖)

圖 210 QR Code 結構圖

QR code 容錯能力

為了避免因為圖形的損壞而導致資料的遺失使用 Reed-Solomon 演算法製

造出 Error Correction Code 儲存在資料容錯區中QR code分為四種等級 LM

QH分別大約為 7152530損壞恢復

定位用圖案

Position detection patterns

資料儲存區

Data Area

表 21 Version 表

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

QR Code 結構

QR Code 圖樣為一正方形一般為黑白兩色所構成左上左下右上三個

角落各印有一個像「回」字的圖案做為幫助解碼軟體定位掃描時不須對準無

論以任何角度都能正確讀取資料除了定位區塊剩下部份由資料儲存區塊及容

錯區塊所組成(圖 210 QR Code結構圖)

圖 210 QR Code 結構圖

QR code 容錯能力

為了避免因為圖形的損壞而導致資料的遺失使用 Reed-Solomon 演算法製

造出 Error Correction Code 儲存在資料容錯區中QR code分為四種等級 LM

QH分別大約為 7152530損壞恢復

定位用圖案

Position detection patterns

資料儲存區

Data Area

表 21 Version 表

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

表 21 Version 表

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

圖 211 圖資料分布圖

表 22 表容錯等級與容錯率

容錯等級 容錯率

L 7

M 15

Q 25

H 30

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

24 QR Code 實際應用在物流網例子介紹

長春石化傳統物流

勇於創新的長春石化把 QR Code用於傳輸提貨單資訊讓卡車司機可以不

再為了提貨單而浪費時間並且成功的讓 ERP 能與提貨單系統整合

長春石化將 QR Code 融入了企業的貨物物流運送流程中其生產的人造樹脂

或是雙氧水等石化產品的原料於台中港卸貨接著運送至苗栗高雄等全國分廠

加工由於每個據點與台中港間距離不一原料需求也不相同所以每天早上司

機在 8點就需要開始整天的流程抵達分貨總樞紐確認貨運排程領取提貨單

然後再依照排程運貨

長春石化早先的貨物物流常常使得整體物流的狀況有許多空轉浪費的時

間有的時候卡車司機早上 8點到了總樞紐卻發現中午才需要發車或是必須趕

回出發點臺中運送臺中港的原料回到苗栗就像如此長春石化的苗栗廠區外

面常常會停滿著一臺又一臺等著運貨的卡車或是卡車明明就是從臺中開過來

8點拿到提貨單之後又要再開回臺中一來一返只為了拿張貨單效率極差

且狀況多有些時候如果遇到客戶需要改變出貨訂單時整個物流流程更是會被

打亂

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

以 QR Code 當電子提貨單改善物流效率

傳統物流所造成的問題長春石化現在用 QR Code解決長春石化發給每位

司機一支安裝有可以接收解讀 QR Code的手機然後把運貨地點的資訊以及改

成用 QR Code 編碼後的提貨單資訊以簡訊傳送給司機讓卡車司機可以不用再

每天早上趕去苗栗廠領取提貨單而可以直接前往當天貨運排程的地點大大的

提升了貨運物流的效率

此外由於 QR Code 擁有不易偽造的特性和過去手寫的提貨單相比較司

機將卡車開到運貨地點時只要把手機螢幕上顯示出來的 QR Code放到和廠區

地磅系統連結的專屬掃描器上提貨單的所有資訊馬上就會自動輸入系統中並

且由旁邊的熱感應紙列表機自動列印出來不需要再像過去般由操作地磅系統

的人員手動輸入提貨單上的資訊後列印減少錯誤的可能性並再度提升了效

ERP整合發送 QR Code 的提貨單系統即時掌握物流狀況

除了改善貨運物流的效率外長春石化也同時把過去用手寫的提貨單資訊

全部整合至企業資源規畫(Enterprise Resource PlanningERP)系統中各

廠區處理提貨單的人員只要每天在 ERP系統中輸入每位司機提貨的流程系統

就會自動以文字簡訊的方式發送貨運地點的資訊和 QR Code編碼的提貨單到每位

司機的手機中ERP 系統掌握庫存的能力也同時提升可以即時掌握出貨的狀況

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

長春石化以 QR Code 傳輸提貨單

圖 213 用掃圖機掃瞄手機上的 QRcode

透過以簡訊傳輸到司機手機上的 QR Code編碼只要將手機螢幕放在掃描器上

提貨單的資訊就會自動輸入系統

圖 214 取得送貨地點

文字簡訊會顯示司機當天需要前往的目的地讓司機不需要像過去每天早上要

去總樞紐拿提貨單和行程

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

第三章 QR Code 應用在物流網之系統分析

本章節針對此次專題計畫所建置的QR Code解碼系統架構加以說明並加以

細分為使用webcam 擷取圖片之系統架構與QR Code Decoder 之系統架構

31 系統整體架構

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

32 主程式解析

編碼程式(QR Code Encoder)

QR Code Encoder編碼程式是將各項貨物資訊及顧客資訊以手動方式輸入

然後讀取分割後的 txt 檔在取得文字訊息後呼叫 Encoder函式進行編碼以產生

QR Code其輸入文字訊息方法與編碼流程(圖 31)

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

圖 31 編碼程式流程圖

開始

選擇容錯等級(LMQH)

手動輸入文字訊息到文字區

(參照手動輸入流程圖)

手動輸入(由使用者手動輸入)

將文字內容轉換成QR Code

(參看Encoder流程圖)

將編碼完成之QR Code儲存成jpg檔

(參照儲存QR Code流程圖)

結束

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

解碼程式(QR Code Decoder)

QR Code Decoder編碼程式是將擷取到的 QR Code JPG圖檔利用呼叫 Decoder

函式來進行解碼再以文字訊息顯示於文字區並做儲存及比對 (圖 32)

圖 32 解碼程式流程圖

開始

按下START對擷取的QR Code圖片開始解碼(參照Decoder流程圖)

將解碼後所得的文字訊息顯示在物流資訊文字區並以QR Code內容之編號為檔名

儲存於已設定目錄下(參照START流程圖)

使用者按下CHECK對擷取的QR Code圖片開始解碼

將解碼後所得的文字訊息顯示在顧客資訊文字區並開啟已設定目錄下與其貨物編碼

內容相同之txt檔將其文字內容顯示在貨物資訊文字區並做比對

(參照CHECK流程圖)

比對字串是否符合(參照字串比對流程)

結束

顯示正確

YES

顯示錯誤

NO

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

33 副程式解析與內部流程圖

QR Code 的編碼的功能主要是使用 boolean[][] Encoder(String line) 函式將

得到的資料 DATA 以 UTF-8 的格式編碼再依照 QR Code ISO 18004 規格中的 8

bit mode 進行 QR Code 編碼QR Code 是一種二維陣列型態的條碼最後將回傳

一個 boolean 型態的二維陣列編碼流程圖(圖 33)

手動輸入文字訊息由使用者輸入在程式介面中的 TextArea 中當輸入完

畢就將 TextArea 中的內容進行編碼手動輸入流程圖(圖 34)

解碼處理當已經編完碼的圖檔儲存至資料夾後我們就可以呼叫解碼程式

進行解碼把圖檔傳送至解碼程式後解碼程式會先判斷此圖檔是否符合解碼的

格式

圖檔處理編碼完成後的二維矩陣可以經由 Paint()函式將完成的 QR Code

在程式界面上顯現儲存成 jpg 圖檔則是藉由 biImage()函式將完成的 QR Code

存入 BufferImage再使用 SaveImage()函式將 QR Code 存成 jpg 圖檔儲存圖檔

流程圖(圖 35)

解碼程式用手機或是掃描器對 QRcode 開始進行拍照後呼叫

QRcodeDecoderTest 程式來進行解碼一開始會先判斷圖片的維度是否符合解碼

的規格符合才會進行解碼而解碼後的資訊會儲存在 txt 檔之中並存放在指

定的資料夾中(圖 36)

start 按鍵對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存在指定

資料夾下(圖 37)

check 按鍵將物品的解碼內容與顧客資訊解碼內容做字串的比對(圖 38)

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

編碼 Encoder()流程圖將文字訊息轉換成 QR Code boolean 矩陣

開始

將字串以UTF-8 mode轉成byte[]

讀容錯等級設定編碼格式為8bit mode

呼叫calQrcode()將字串轉成Booiean[]

呼叫getQrcodeVersion()

showMessage Versiongt11 手機無

法掃描Versiongt11

結束

NO

YES

圖 33 編碼 Encoder()流程圖

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

手動輸入流程圖由使用者輸入內容到文字區再將文字區內容編碼

開始

使用者手動輸入TextArea

Sring test = getText()

呼叫Encoder(test)

結束

圖 34 手動輸入流程圖

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

儲存圖檔流程圖將編碼完成的 QR Code boolean 矩陣存成 jpg 檔

開始

呼叫biImage()將booleanp[][]矩陣

轉成QRcode

存成jpg

結束

圖 35 儲存圖檔流程圖

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

解碼 Decoder()流程圖將 QRcode 圖檔解碼成文字檔

開始

開啟圖檔 File imageFile = newFile(路徑)

暫存圖檔image = ImageIoread(imageFile)

呼叫J2SEImage判斷暫存圖檔是否符合解碼規格

呼叫decoder將圖檔內容Booliean[]轉換成UTF-8字串

結束

顯示規格不符否

圖 36 Decoder流程圖

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

start按鍵流程圖 對編碼後儲存於資料夾之 QR Code解碼並以編號為檔名儲存

在指定資料夾下

按擊START 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

建立一個資料夾以儲存解碼資訊

建立一個跟字串同長度的array儲存

字串

擷取儲存字串的array第3到第5個字元為檔

案儲存檔名

將解碼資訊以array第3到第5個字元為檔名

存成TXT檔

將字串顯示在QRCodeDecoder文字區

結束

設定讀取QR Code圖檔路徑為D

server

圖 37 start按鍵流程圖

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

check 按鍵流程圖 將物品的解碼內容與顧客資訊解碼內容做比對

按擊CHECK 按鈕

呼叫Decoder

將格式為UTF-8轉為字串

擷取儲存字串的array第3到第5個字元為檔案檔名

開啟檔案

建立一個跟字串同長度的array儲存

字串

將開啟之檔案內容以字串顯示在QRCodeDecoder貨物資訊文字區並存成

testString1

結束

設定讀取QR Code圖檔路徑為D

consumer

將經Decoder解碼之內容顯示在QRCodeDecoder顧客資訊文字區並

存成testString2

testString1equals

(testString2)

比對testString1與

testString2

顯示正確 顯示錯誤

圖 38 check按鍵流程圖

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

第四章 QR Code 應用在物流網之系統實作

本章節針對此次專題計畫實作加以說明並以圖示解說整體架構以及實際操

作過程

41系統實作整體架購說明

使用者於訂購商品時留下資料(顧客資料)生產地(出貨地)將顧客資料與商

品資料一併轉成 QR Code一方面置於貨物上以方便取貨時確認取貨者身分另

一方面消費者持有相同 QR Code可確認其訂購商品的內容

圖 41 專題系統流程

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

42系統實作編碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 42 Encoder介面

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

Step2輸入貨物資料及顧客資料

圖 43 輸入資料到 Encoder

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

Step3按下「開始編碼 QRCODE」編碼

圖 44 編碼成功

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

Step4編碼完成儲存在 consumer 及 server 資料夾

以模擬貨物上所載 QRCODE及顧客持有 QRCODE

圖 45 儲存 QRcode

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

圖 46 QRcode儲存在 comsumer 的資料夾下

43系統實作解碼程式實作過程

Step1開啟 QRCodeEncoder 程式

圖 47 Decoder介面

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

Step2按下「START」對編碼後儲存於 consumer 資料夾之 QRCODE(商品包裝上

所附之 QR Code)解碼並以編號為檔名儲存在指定資料夾(貨物領取資料)下

圖 48 對物品的 QRcode 解碼

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

Step3按下「CHECK」對編碼後儲存於 server 資料夾之 QRCODE(取貨者所持之

QR Code)解碼呼叫同編號的檔案顯示在物流資訊的文字區

圖 49 對客戶資訊做解碼

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

Step4 按下「CHECK」的同時並將呼叫的檔案內容與顧客資訊解碼內容做比對

圖 410 物品資料與客戶資訊比對

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

第五章 結論與未來系統發展

QR Code於生活中的使用越來越普及最常見的例子就是使用者由手機下載並

安裝解碼程式再利用手機的照相功能進行擷圖然後由解碼程式解碼由手機的

例子可見資訊的取得方式方便與否關係資訊被下載或是瀏覽的機會於是 QR

Code搭配手機解碼成了時下極為流行的一種資訊取得方式探討過幾個以 QR

Code整合物流的例子我們發覺以行動條碼搭配物流網整合著實對整體物流帶

來極大的效益從資材物流生產資訊及銷售過程的串接不僅讓整體物流效率提

高更節省了不必要的資材開銷及時間消耗

本專題貢獻在於透過「QR Code 編碼程式」將貨物資訊及顧客資訊存成圖

檔再透過「QR Code 解碼程式」進行解碼取得資訊並做核對其中解決了領貨

流程所發生的以下問題首先以往消費者在領取貨物時須要攜帶證件領貨單

等具身分核對依據的物品前往領取貨物對消費者來說繁瑣的核對過程將大大抵

銷了網路購物的方便性再者傳統領貨單以紙本作為物流記錄的方式時有領

貨單抄寫錯誤貨品與領貨者訂購之物品不符亦或是非人為的影響造成領貨單

字體模糊影響核對的準確度等問題都對消費者造成困擾

QR Code 應用中有許多自動連結的功能比如利用 QR Code內含的 SMS-to

功能去實現自動傳送文字簡訊當 QR Code內容以 SMS-to格式( SMSTO +電話

+ +簡訊內容 )去編碼當使用者對其 QR Code 解碼後便自動寄發簡訊到目標手

機這樣的應用可以結合我們專題在貨物到達取貨處後進行解碼解碼之後立

即傳送簡訊到領貨者的手機讓領貨者可以不用為了等待領貨而耽誤其他時間的

利用

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw

參考文獻

Wikipedia httpzhwikipediaorgzh-twQRCode

httpenwikipediaorgwikiQR_Code

funcode 科技httpwwwfuncode-techcomQR_apphtml

QRcode 台灣httpwwwqrdoorcomtwtransaspx

The reference libraries of QRcode httpsorucepagejpprojectqrcode

QuickMark 行動條碼httpwwwquickmarkcomtw