import java.io.*;
目前成都創新互聯已為1000多家的企業提供了網站建設、域名、網絡空間、網站托管、服務器托管、企業網站設計、伊通網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。
import java.util.Date;
import java.awt.*;
import java.awt.image.*;
import javax.imageio.*;
public class QRCodeEncoderTest
{
/** Creates a new instance of QRCodeEncoderTest */
public QRCodeEncoderTest()
{
}
public static void create_image(String sms_info)throws Exception{
try{
qrcode testQrcode =new qrcode();
testQrcode.setQrcodeErrorCorrect('M');
testQrcode.setQrcodeEncodeMode('B');
testQrcode.setQrcodeVersion(7);
String testString = sms_info;
byte[] d = testString.getBytes("gbk");
System.out.println(d.length);
//BufferedImage bi = new BufferedImage(98, 98, BufferedImage.TYPE_INT_RGB);
BufferedImage bi = new BufferedImage(98, 98, BufferedImage.TYPE_BYTE_BINARY);
Graphics2D g = bi.createGraphics();
g.setBackground(Color.WHITE);
g.clearRect(0, 0, 98, 98);
g.setColor(Color.BLACK);
// 限制最大字節數為120
if (d.length0 d.length 120){
boolean[][] s = testQrcode.calQrcode(d);
for (int i=0;is.length;i++){
for (int j=0;js.length;j++){
if (s[j][i]) {
g.fillRect(j*2+3,i*2+3,2,2);
}
}
}
}
g.dispose();
bi.flush();
File f = new File("D:\\QRCodeTest\\"+sms_info+".jpg");
if(!f.exists()){
f.createNewFile();
}
//創建圖片
ImageIO.write(bi, "jpg", f);
} // end try
catch (Exception e) {
e.printStackTrace();
public class ArrayExample{ public static void main(String[] args){ int i=1; int yh[] = new int[8]; for(i=0;i8;i++) {
一維條碼 1.1 一維條碼簡述條碼是將線條與空白按照一定的編碼規則組合起來的符號, 用以代表一定的 字母、數字等資料。在進行辨識的時候,是用條碼閱讀機掃描,得到一組反射光 信號,此信號經光電轉換后變為一組與線條、空白相對應的電子訊號,經解碼后 還原為相應的文數字,再傳入電腦。 世界上約有 225 種以上的一維條碼,每種一維條碼都有自己的一套編碼規 格,規定每個字母(可能是文字或數字或文數字)是由幾個線條(Bar)及幾個空白 (Space)組成, 以及字母的排列。 一般較流行的一維條碼有 39 碼、 碼、 EAN UPC 碼、 128 碼,以及專門用於書刊管理的 ISBN、ISSN 等。 表1 年 1982 1983 1984 1984 1984 Code39 條碼 一維條碼標準制定年代表 納入標準 Military Standard 1189 ANSI MH10.8M ANSI MH10.8M AIAG 標準 HIBC 標準 Code39, Interleaved 2 of 5, Codabar UPC Code39 Code39 從 UPC 以后,為滿足不同的應用需求,陸陸續續發展出各種不同的條碼標準 和規格,時至今日,條碼已成為商業自動化不可缺少的基本條件。條碼可分為一 維條碼 (One Dimensional Barcode, 1D) 和二維碼(Two Dimensional Code, 2D) 兩大類, 目前在商品上的應用仍以一維條碼為主, 故一維條碼又被稱為商品條碼, 二維碼則是另一種漸受重視的條碼,其功能較一維條碼強,應用范圍更加廣泛。 1.2 一維條碼規格的內容在一個條碼的起頭及結束的地方,都會放入起始碼及結束碼,用以辨識條 碼的起始及結束,不過不同條碼規格的起始碼及結束碼的圖樣并不完全相同。具 體而言,每一種條碼規格明定了下列七個要項: 1、 字元組合 、 字元組合(Character Set) 每一種條碼規格所能表示的字元組合,有不同的范圍及數目,有些條碼規格 只能表示數字,如 UPC 碼、EAN 碼;有些則能表示大寫英文字及數字,甚至能表 示出全部 ASCII 字元表上的 128 字元,如 39 碼、128 碼。 2、 符號種類 、 符號種類(Symbology Type) 依據條碼被解讀時的特性可將條碼規格分成兩大類: 分散式 每一個字元可以獨自地解碼,列印時每個字元與旁邊的字元間,是由字間距 分開的,而且每個字元固定是以線條做為結束。然而,并不一定是每一個字間距 的寬度大小都必須相同,可以容許某些程度的誤差,只要彼此差距不大即可,如 此,對條碼印表機(Barcode Printer)的機械規格要求可以比較寬松。例如 39 碼與 128 碼。 連續式 字元之間沒有字間距,每個字元都是線條開始,空白結束。且在每一個字的 結尾后,馬上就緊跟下一個字元的起頭。由於無字間距的存在,所以在同樣的空 間內,可列印出較多的字元數,但相對地,因為連續式條碼的密度比較高,其對 條碼機的列印精密度的要求也較高。例如 UPC 和 EAN 碼。 3、 粗細線條的數目 、 條碼的編碼方式, 是藉由許多粗細不一的線條及空白的組合方式來表示不同 的字元碼。大多數的條碼規格都是只有粗和細兩種線條,但也有些條碼規格使用 到二種以上不同粗細的線條。 4、 固定或可變長度 、 指在條碼中包含的資料長度是固定或可變的, 有些條碼規格因限於本身結構 的關系,只能使用固定長度的資料,如 UPC 碼、EAN 碼。 5、 細線條的寬度 、 指條碼中細線條及空白的寬度, 通常是某個條碼中所有細的線條及空白的平 均值,而且它使用的單位通常是 mil (千分之一英寸,即 0.001 inch)。 6、 密度 、 指在一固定長度內可表示字元數目,例如條碼規格 A 的密度高於條碼規格 B 的密度,則表示當兩者密度值相同時,在同一長度內,條碼 A 可容納得下較多的 字元。 7、 自我檢查 、 指某個條碼規格是否有自我檢測錯誤的能力,會不會因一個列印上的小缺 陷,而可能使得一個字元被誤判成為另外一個字元。有「自我檢查」能力的條碼 規格,大多沒有硬性規定要使用「檢查碼」 ,例如 39 碼。沒有「自我檢查」能力 的條碼規格,在使用上大多有「檢查碼」的設定,如 EAN 碼、UPC 碼等。 1.3 一維條形碼符號的結構 一維條形碼符號的通常一個完整的條碼是由兩側靜空區、起始碼、資料碼、檢查碼、終止碼組 成,以一維條碼而言,其排列方式通常如下所示: 靜空區: 靜空區: 位於條碼兩側無任何符號及資訊的白色區域,主要用來提示掃瞄器準備掃瞄。 起始碼: 起始碼: 指條碼符號的第一位字碼,用來標識一個條碼符號的開始,掃瞄器確認此字碼存 在后開始處理掃瞄脈沖。 資料碼: 資料碼: 位於起始碼后面的字碼,用來標識一個條碼符號的具體數值,允許雙向掃瞄。 檢查碼: 檢查碼: 用來判定此次閱讀是否有效的字碼,通常是一種算術運算的結果,掃瞄器讀入條 碼進行解碼時,先對讀入各字碼進行運算,如運算結果與檢查碼相同,則判定此 次閱讀有效。 1.4 一維碼的類別 1.4.1 UPC 碼 UPC 碼(Universal Product Code)是最早大規模應用的條碼,其特性是一種 長度固定、 連續性的條碼, 目前主要在美國和加拿大使用, 由於其應用范圍廣泛, 故又被稱萬用條碼。 UPC 碼僅可用來表示數字,故其字碼集為數字 0~9。UPC 碼共有 A、B、C、D、 E 等五種版本,各版本的 UPC 碼格式與應用對象如表 2 所示。表 2 UPC 碼的各種版本 版本 UPC-A UPC-B UPC-C UPC-D UPC-E 注:S-系統碼 應用對象 通用商品 醫藥衛生 產業部門 倉庫批發 商品短碼 X-資料碼 C-檢查碼 SXXXXX XXXXXC SXXXXX XXXXXC XSXXXXX XXXXXCX SXXXXX XXXXXCXX XXXXXX 格 式 下面將再進一步介紹最常用的 UPC 標準碼(UPC-A 碼)和 UPC 縮短碼(UPC-E 碼) 的結構與編碼方式。 UPC1.4.1.1 UPC-A 碼 UPC1.4.1.2 UPC-E 碼 1.4.2 EAN 碼依結構的不同,可區分為: 依結構的不同,可區分為: EAN 碼是國際物品編碼協會制定的一種商品用條碼,通用于全世界。EAN 碼符號有標準版(EAN-13)和縮短版(EAN-8)兩種標準版表示 13 位數字,又稱 為 EAN13 碼,縮短版表示 8 位數字,又稱 EAN8。兩種條碼的最后一位為校驗位, 由前面的 12 位或 7 位數字計算得出。兩種版本的編碼方式可參考國標 GB-12094-1998。 1.4.2.1 EAN-13 碼 1.4.2.2 EAN-8 碼 1.4.3 ISBN 碼 ISBN 與 ISSNEAN 的用途很廣, 除了我國的商品條碼 CAN 以及日本商品條碼 JAN 外,目前國際認可的書籍代號與期刊號的條碼,也都是由 EAN 變身而來的。 簡單來說,ISBN 與 EAN 的對應關系為:978 + ISBN 前 9 碼 + EAN 檢查碼。 ISBN10 ISBN 13 ISBN 13 Dual 1.4.4 ISSN 碼國際標準期刊號 ( International Standard Serial Number,簡稱 ISSN ), ISSN 與 EAN 的對應關系為:977 + ISSN 前 7 碼 + 00 + EAN 檢查碼。 1.4.5 128 碼 128 碼開始于 1981 年推出,是一種長度可變、連續性的字母數字條碼。與 其他一維條碼比較起來,128 碼是較為復雜的條碼系統,而其所能支援的字元也 相對地比其他一維條碼來得多,又有不同的編碼方式可供交互運用,因此其應用 彈性也較大。 EANEAN-128 碼 GSIGSI-128 碼 UCCUCC-128 1.4.6 三九碼 Code39 碼(也被稱為“ USS Code 39”、“Code 3/9”、“Code 3 of 9 ”、 “USD-3”、“ Alpha39 ”、“類型 39 ” )是一種條碼類型,可以編碼大寫 字母( a 到 z ) ,數字( 0 到 9 )和少數特殊字符,如$符號等。條碼本身不 包含檢查碼(相反,例如,代碼 128 ) ,但它可以被視為自檢一些,理由是一 個錯誤的解釋,律師無法生成另一種有效的字符。可能是最嚴重的缺點是它的 Code39 碼的數據存儲密度低: 它需要更多的空間編碼數據的 Code39 碼比, 例如, 在代碼 128 。 這意味著, 非常小的貨物不能標記 Code39 碼的條碼。 然而, Code39 碼仍然是廣泛使用的, 可解碼幾乎任何條形碼閱讀器。 好處之一是, Code39 碼, 因為沒有必要產生一個校驗數位,它可以很容易地集成到現有的印刷系統,增加 了條碼打印機字體的系統或打印機,然后打印的原始數據中的字體。 寬度之間的比例縮小和廣泛之間可以選擇 1:2 和 1:3 。 1.4.6.1 Code 39 1.4.6.2 Code 39 Full SCII 普通的 39 碼只能識別 43 個字符,如果想識別這 43 個以外的 ASCII 碼,那么就要用 到 Code 39 Full ASCII。Code 39 Full ASCII 主要用于生產制造業,軍事制造以及保健器材等方 面。 1.4.6.3 Trioptic 39 Trioptic 39 碼是39 碼的一個變種,應用于磁帶和計算機耗材的標記。 Trioptic 39碼是定長碼,包含1 個起始符、6 個數據字符和1 個終止符。 Trioptic 39 碼起始符/終止符傳送:Trioptic 39 碼的起始符和終止符是 “*”。如使能,輸出字符數據包含兩個“$”。 1.4.7 二五條碼二五條碼研制于 60 年代后期,它用于倉庫的分類管理,標示膠卷包裝及機 票的連續號等。 圖:二五條碼 二五條碼有兩種單元寬度,它僅用條表示信息,條碼字符由規則排列 的 5 個條組成,其中兩個是寬條,其余是窄條。二五條碼的編碼容量為 C(5,2)=10 ,所以它的字符集為數字字符 0-9 。二五條碼是一種非連續型、雙 向可讀且具有自校驗功能的非定長條碼。 1.4.7.1 Interleaved 2 of 5(交叉 25 碼) ( 交插二五條碼是由美國 intermec 公司與 1972 年發明, 初期應用于倉儲及重工 業領域,標準化后用于儲運單元的識別與管理。 1.4.7.2 Industrial 2 of 5 交叉 25 碼是一個連續兩個寬度條碼符號編碼位數。它是用于商業的 135 電 影和紙箱的一些產品,而產品內標記有 UPC 或 EAN 的。 1.4.7.3 Matrix 2 of 5 1.4.8 China Post 中國郵政條碼是通過更改 Matrix 2 of 5 而來,更改了啟動和停止字符。 1.4.9 九三碼 九三碼 Code 93 碼的條碼符號是由 Intermec 公司于 1982 年設計的 提供更高的密 度和數據安全增強碼 39 。它是一個字母,長度可變符號。代碼 93 主要用于由 加拿大郵政編碼補充提供的資料。每一個符號包括兩個檢查字符。 1.4.10 庫德巴條碼(codabar) 庫德巴條碼( )庫德巴條碼是 1972 年推出的, 它廣泛應用于醫療衛生及圖書行業, 1977 年美國輸血協會將庫德巴條碼規定為血袋標識標準條碼。 1.4.11 CODE 11(USD-8) 11 條碼主要用于通訊設備,電信領域。 1.4.12 MSI Plessey MSI Plessey 條碼是 Plessey 條碼變種。它是一個脈沖寬度調制非自檢查代碼, 用在商店貨架標簽為主。 1.4.13 Plessey Plessey 碼產生于英國,并推動了 MSI、Anker 和 Telxon 的發展。 1.4.14 PostNet (3 of 5) ) PostNet 條碼是美國郵政自動處理郵件使用的。 1.4.15 Australia Post 澳大利亞郵政條碼 1.4.16 Code 32 Code 主要用意大利醫藥產品的編碼。 1.4.17 Deutsche Post Identcode/Leitcode Identcode/Leitcode 主要用于德國的郵政。 1.4.18 JAN-13 JAN-13 基本上是 EAN-13 的另外一個名字,是日本的物件的條碼。 1.4.19 JAN-8 JAN-8 是 EAN-8 在日本的名字。 1.4.20 Numly Numly 是一個獨特的標識,它允許作者和出版社為出版物的內容分配 ID 進行跟 蹤。 1.4.21 Opc Opc 主要用于制造零售的光學產品。 1.4.22 Pharmacode Pharmacode 是一個用于制藥產業包裝控制標準,它能在有些許錯誤的情況 下準確讀出,只有一個讀取方向是正確的,可以彩色印刷。 1.4.23 Planet The PostaL Alpha Numeric Encoding Technique (PLANET),主要是美國在 郵電業服務使用,對郵寄的物品進行識別和辨認。 1.4.24 PZN PZN 主要德國人用于藥物和保健產品的分發。 1.4.25 Royal Mail(RM4SCC) ( ) 1.4.26 KIX KIX 產生于 1999 年,荷蘭用其進行信件的編排分類。 1.4.27 Scc14 SCC-14(shipping Container Code)用于對集裝箱運輸。 1.4.28 Singapore Post 1.4.29 ITF 條碼 ITF 條碼是用于儲運單元的條碼符號, ITF 條碼符有 ITF -14,ITF -16 及 ITF-6(附加代碼 add-on),他們都是定長型條碼。 ITF-14 1.4.30 SSCC 18 用于識別個人海運集裝箱。 1.4.31 Swiss PostParcel PostParcel 主要用于包裹的識別。 1.4.32 Telepen Telepen 于 1972 年產生于英國,能表達 128 個不同的 ASCII。 1.4.33 UspsFim UspsFim 是一個識別標志,旨在協助郵件的自動化服務。 1.4.34 Intelligent Mail Intelligent Mail 是 UspsFim 的升級版,用于信件的分類和跟蹤。 1.4.35 Usps Sack Label Usps Sack Label 主要用于美國郵政服務。 1.4.36 Usps Tray Label Usps Tray Label 主要用于美國郵政服務。 1.4.37 LOGMARS LOGMARS 是美國說明書條碼。 1.4.38 ISMN ISMN (International Standard Music Number) 1.4.39 Leitcode 德國的郵政編碼,主要用于德國的郵件母的地的解碼。 1.4.40 USPS Facing Identification Mark 只表示有 ABCD,出現的時候只代表其中的一個 一下分別表示 ABCD
網站標題:java一維碼代碼,java生成一維碼
網站地址:http://m.newbst.com/article8/dssieop.html
成都網站建設公司_創新互聯,為您提供網站排名、網站設計公司、網站收錄、域名注冊、網站營銷、外貿網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯