JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java ME、Google Android 平台與 JavaCard 討論區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:手機照相辨識二維條碼(Sample Code) [Re:robin]
ryanpai





發文: 47
積分: 0
於 2007-03-01 09:57 user profilesend a private message to usersend email to ryanpaireply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
QR Code 編碼
=============================================
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
/*********************************************************
 *
 * Created on 2007年3月1日
 *
 * Program : QRCodeEncoderTest.java
 * @author : ryanpai
 * Java平台 : J2SDK 1.4.9
 * OS : XP
 * 1. 下載使用 (http://www.swetake.com/qr/ ) qrcode.jar
 *     => 建議改為qr_encode.jar
 *     (因為跟SourceForge QR Code Decode Library 之 qrcode.jar 同名)
 * 2. 將上述下載的 jar 增加至classpath
 *
 ********************************************************/
 
import com.swetake.util.Qrcode;
import java.io.*;
 
import java.awt.*;
import java.awt.image.*;
import javax.imageio.*;
 
/******************************************
 *
 * @author  Ryan Pai
 *
 ******************************************/
 
public class QRCodeEncoderTest {
    
    /** Creates a new instance of QRCodeEncoderTest */
    public QRCodeEncoderTest() {
    }
    
    /**
     * @param args the command line arguments
     */
    
    public static void main(String[] args) {
        
        try{
            
            // TODO code application logic here
            
            // Constructor Qrcode Object
            com.swetake.util.Qrcode testQrcode 
                  = new com.swetake.util.Qrcode();
            testQrcode.setQrcodeErrorCorrect('M');
            testQrcode.setQrcodeEncodeMode('B');
            testQrcode.setQrcodeVersion(7);
            
            // 設定QR Code 編碼內容
            String testString = "";
            testString = testString+"JavaWorld .\n";
            testString = testString+"中文Java討論網站\n";
            testString = testString+"http://www.javaworld.com\n";
            
            // getBytes
            byte[] d = testString.getBytes("Big5");
            
            // 設定圖檔寬度 140*140
            BufferedImage bi 
            = new BufferedImage(140, 140, BufferedImage.TYPE_INT_RGB);
            
            // createGraphics
            Graphics2D g = bi.createGraphics();
            
            // set background
            g.setBackground(Color.WHITE);
            g.clearRect(0, 0, 140, 140);
            
            // 設定字型顏色 => BLACK
            g.setColor(Color.BLACK);
            
            // 轉出 Bytes
            if (d.length>0 && d.length <120){
                boolean[][] s = testQrcode.calQrcode(d);
                for (int i=0;i<s.length;i++){
                    for (int j=0;j<s.length;j++){
                        if (s[j][i]) {
                            g.fillRect(j*3+2,i*3+2,3,3);
                        }
                    }
                }
            }
            
            g.dispose();
            bi.flush();
            
            // 設定 產生檔案路徑
            String FilePath="D:\\TestQRCode.jpg";
            File f = new File(FilePath);
            
            // 產生TestQRCode JPG File
            ImageIO.write(bi, "jpg", f);
            
        } // end try
        catch (Exception e) {
            e.printStackTrace();
        } // end catch
        
    } // end main
    
}
 


QR Code 解碼
=============================================
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/*********************************************************
 *
 * Created on 2007年3月1日
 *
 * Program : QRCodeDecoderTest.java
 * @author : ryanpai
 * Java平台 : J2SDK 1.4.9
 * OS : XP
 * 1. 下載使用 (http://sourceforge.jp/projects/qrcode/ ) qrcode.jar
 *       => (SourceForge Open Source QR Code Decode Library)
 * 2. 修改官方 Sample => QRCodeDecoderCUIExample.java
 * 3. 將上述下載的 jar 增加至classpath
 *
 ********************************************************/
 
import jp.sourceforge.qrcode.codec.QRCodeDecoder;
import jp.sourceforge.qrcode.codec.data.QRCodeImage;
import jp.sourceforge.qrcode.codec.exception.DecodingFailedException;
import jp.sourceforge.qrcode.codec.exception.InvalidVersionInfoException;
 
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.File;
import java.io.IOException;
 
/******************************************
 *
 * @author  RYANPAI
 *
 ******************************************/
 
public class QRCodeDecoderTest {
    
    /** Creates a new instance of QRCodeDecoderTest */
    public QRCodeDecoderTest() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
        // TODO code application logic here
        QRCodeDecoder decoder = new QRCodeDecoder();
        
        // 設定讀取QR Code圖檔路徑
        File imageFile = new File("D:\\TestQRCode.jpg");
        
        // 設定 BufferedImage
        BufferedImage image = null;
        
        try {
            image = ImageIO.read(imageFile);
        } catch (IOException e) {
            System.out.println("Error: "+ e.getMessage());
        }
        try {
            String decodedData 
            = new String(decoder.decode(new J2SEImage(image)));
            System.out.println(decodedData);
        } catch (DecodingFailedException dfe) {
            System.out.println("Error: " + dfe.getMessage());
        }
        
        
    }
}
 
class J2SEImage implements QRCodeImage {
    BufferedImage image;
    
    public J2SEImage(BufferedImage image) {
        this.image = image;
    }
    
    public int getWidth() {
        return image.getWidth();
    }
    
    public int getHeight() {
        return image.getHeight();
    }
    
    public int getPixel(int x, int y) {
        return image.getRGB(x, y);
    }
    
}
 


ryanpai edited on 2007-03-06 09:50
reply to postreply to post
Ryan Pai
話題樹型展開
人氣 標題 作者 字數 發文時間
22864 手機照相辨識二維條碼 seamaid925 29 2005-12-20 10:18
21364 Re:手機照相辨識二維條碼 bin1x 33 2005-12-20 10:57
20160 Re:手機照相辨識二維條碼 d8290342001 134 2006-07-25 09:47
20315 Re:手機照相辨識二維條碼 brian_tsim 280 2006-07-26 18:57
20163 Re:手機照相辨識二維條碼 tempo 473 2006-07-26 23:43
20279 Re:手機照相辨識二維條碼 brian_tsim 127 2006-07-27 11:36
18835 Re:手機照相辨識二維條碼 ryanpai 611 2007-03-06 09:48
18118 Re:手機照相辨識二維條碼 ryanpai 100 2007-04-10 17:37
17956 Re:手機照相辨識二維條碼 richerhsu 111 2007-04-12 01:30
19070 Re:手機照相辨識二維條碼 ryanpai 560 2007-04-12 09:38
14071 Re:手機照相辨識二維條碼 907061 40 2008-01-28 17:01
13760 Re:手機照相辨識二維條碼 loirend 112 2008-03-04 01:54
20908 Re:手機照相辨識二維條碼 seamaid925 17 2005-12-20 13:22
20757 Re:手機照相辨識二維條碼 bin1x 71 2005-12-20 15:42
20848 Re:手機照相辨識二維條碼 tempo 333 2005-12-20 21:58
20855 Re:手機照相辨識二維條碼 hungyi 125 2005-12-23 11:13
20553 Re:手機照相辨識二維條碼 seamaid925 50 2005-12-24 02:20
20570 Re:手機照相辨識二維條碼 seamaid925 37 2005-12-24 07:36
20645 Re:手機照相辨識二維條碼 cseserv 116 2006-01-05 11:05
12849 Re:手機照相辨識二維條碼 sun1111 21 2008-05-26 22:28
20628 Re:手機照相辨識二維條碼 seamaid925 107 2005-12-24 08:50
20605 Re:手機照相辨識二維條碼 robin 213 2005-12-26 09:52
23626 Re:手機照相辨識二維條碼(Sample Code) ryanpai 5577 2007-03-01 09:57
20362 Re:手機照相辨識二維條碼(Sample Code) richerhsu 1475 2007-04-09 23:16
18801 Re:手機照相辨識二維條碼(Sample Code) ryanpai 34 2007-04-10 12:18
18097 Re:手機照相辨識二維條碼(Sample Code) richerhsu 45 2007-04-10 15:39
20910 Re:手機照相辨識二維條碼 achif 230 2006-01-17 17:24
18556 Re:手機照相辨識二維條碼 axlchen 488 2007-03-01 16:37
16574 Re:手機照相辨識二維條碼 enci826 161 2007-11-29 01:41
11691 Re:手機照相辨識二維條碼 loirend 23 2008-09-16 23:12
» JWorld@TW »  Java ME、Google Android 平台與 JavaCard 討論區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8