java生成二维码例子及Qrcode.jar包(demo小例子)

java生成二维码例子及Qrcode.jar包

#######获取地址: http://note.youdao.com/noteshare?id=dd9ec8a63ab3b97eba58bf7b32e4a8d9

package com.module.screen.test;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;

import com.swetake.util.Qrcode;

public class TestQrcode {
    public static void main(String[] args) {
        getQrcodeImage("http://images.ali213.net/picfile/pic/2013/05/17/927_zzz1.jpg","D:\\tangjinhui.png");
    }
    public static void getQrcodeImage(String content,String imagePath){
        int width = 235;
        int height = 235;
        //实例化一个对象
        Qrcode qrcode = new Qrcode();
        //编码方式
        qrcode.setQrcodeEncodeMode('B');
        //二维码的版本
        qrcode.setQrcodeVersion(15);
        //排错率
        qrcode.setQrcodeErrorCorrect('M');
        
        //创建一个图板
        BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
        //画笔
        Graphics2D gs = image.createGraphics();
        //设置二维码的背景颜色
        gs.setBackground(Color.white);
        gs.setColor(Color.black);
        gs.clearRect(0, 0, width, height);
        
        byte[] codeOut = null;
        try{
            codeOut = content.getBytes("utf-8");
            boolean[][] code = qrcode.calQrcode(codeOut);
            for(int i=0;i<code.length;i++){
                for(int j=0;j<code.length;j++){
                    if(code[j][i]){
                        gs.fillRect(j*3+2, i*3+2, 3, 3);
                    }
                }
            }
        File file = new File("C:\\Users\\tangjinhui\\Desktop\\image.png");
        Image srcImage = ImageIO.read(file);
        int width2 = srcImage.getWidth(null);
        int height2 = srcImage.getHeight(null);
        gs.drawImage(srcImage, 83, 83, width2, height2,null);
        //释放资源
        gs.dispose();
        image.flush();
        //写入制定的路径
        ImageIO.write(image, "png",new File(imagePath));
        }catch(Exception e){
            e.printStackTrace();
        }
                
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

5656
来自专栏魂祭心

原 canvas绘制clock

4204
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2617
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2222
来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3225
来自专栏菩提树下的杨过

Flash/Flex学习笔记(23):运动学原理

先写一个公用的小球类Ball: package{ import flash.display.Sprite; //小球 类 public class B...

25410
来自专栏大内老A

The .NET of Tomorrow

Ed Charbeneau(http://developer.telerik.com/featured/the-net-of-tomorrow/) Exciti...

32210
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

7068
来自专栏跟着阿笨一起玩NET

c#实现打印功能

2872
来自专栏我和未来有约会

Silverlight第三方控件专题

这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏请告知我一下。 名称 简介 截图 telerik 商 RadC...

4055

扫码关注云+社区