java實現二維碼製作

最近,看到好多人在做生成二維碼的功能,感覺很高大上,就想着自己也整一套二維碼製作的代碼。之前幾個月就寫好了,只是沒有時間發表。前幾個月很懶,博文也是斷斷續續的寫,感覺這樣很不好,所以,決定接下來要好好寫。

package com.zsl.code;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JOptionPane;
import com.swetake.util.Qrcode;

/**
 * 〈二維碼製作〉
 * @author    ZSL
 * @version   V1.00 2015-5-13[版本號, YYYY-MM-DD]
 * @see       [相關類/方法]
 * @since     TP V1.0R001 [產品/模塊版本]
 */
public class Code
{

    /**
     *〈生成二維碼〉
     * @param args void
     * @throws IOException 
     */

    public static void createCode()
        throws IOException
    {
        Qrcode qrcode = new Qrcode();
        qrcode.setQrcodeErrorCorrect('M');
        qrcode.setQrcodeEncodeMode('B');
        qrcode.setQrcodeVersion(7);
        int width = 140, height = 140;
        BufferedImage bufImage = new BufferedImage(width, height,
            BufferedImage.TYPE_INT_RGB);
        Graphics2D grap = bufImage.createGraphics();
        //String content="http://user.qzone.qq.com/1064396300/main";
        String content = "龍哥:我的理想是什麼?我的目標是什麼?我的錢途又在哪裏?";

        byte[] contentByte = content.getBytes("utf-8");
        grap.setBackground(Color.WHITE);
        grap.clearRect(0, 0, width, height);
        grap.setColor(Color.BLACK);

        boolean[][] codeOut = qrcode.calQrcode(contentByte);
        for (int i = 0; i < codeOut.length; i++ )
        {
            for (int j = 0; j < codeOut.length; j++ )
            {
                if (codeOut[j][i])
                {
                    grap.fillRect(j * 3 + 2, i * 3 + 2, 3, 3);
                }
            }
        }

        File img = new File("E:\\code.png");
        if ( !img.exists())
        {
            img.mkdir();
        }
        else
        {
            img.delete();
        }
        grap.dispose();
        ImageIO.write(bufImage, "png", img);
        JOptionPane.showMessageDialog(null, "二維碼生成成功!");
    }

    public static void main(String[] args)
        throws IOException
    {
        createCode();
    }
}

二維碼已經生成成功,唯一的缺點就是中間不帶logo圖片。
後期一定會改進的。
下面附上源碼一份:java實現二維碼製作源碼





                  二維碼
















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章