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 条评论
登录 后参与评论

相关文章

来自专栏林德熙的博客

win10 uwp 气泡 WPF 气泡

假设尖头宽度 10 高度 5 ,那么可以看到第一个点是 (0,5) 第二个点是 (5,0) 第三个点是 (10,5)

521
来自专栏程序你好

CSharp代码示例每日一讲: 在GDI+中使用画笔和画刷

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

C#实现树型结构TreeView节点拖拽的简单功能(转)

本文摘抄博客园里面的牛人吉日嘎啦。http://www.cnblogs.com/jirigala

541
来自专栏SeanCheney的专栏

《Pandas Cookbook》第08章 数据清理1. 用stack清理变量值作为列名2. 用melt清理变量值作为列名3. 同时stack多组变量4. 反转stacked数据5. 分组聚合后uns

第01章 Pandas基础 第02章 DataFrame运算 第03章 数据分析入门 第04章 选取数据子集 第05章 布尔索引 第06章 索引对齐 ...

612
来自专栏听雨堂

从MapX到MapXtreme2004[8]-加入文字

        很久没有写随笔了,也很久没看xtrem了,手生!         今天想实现往一个图层加入一个文字,如下: //加入一个...

1988
来自专栏逸鹏说道

C# 温故而知新:Stream篇(六)

BufferedStream 目录: 简单介绍一下BufferedStream 如何理解缓冲区? BufferedStream的优势 从BufferedStre...

3305
来自专栏张善友的专栏

.NET不可变集合已经正式发布

微软基础类库(Base Class Library)团队已经完成了.NET不可变集合的正式版本,但不包括ImmutableArray。与其一起发布的还包括针对其...

19310
来自专栏小灰灰

spring-boot & zxing 搭建二维码服务

使用zxing提供二维码生成解析服务 搭建一个二维码的生成 & 解析服务, 使用java web对外提供http调用,返回base64格式的二维码图片 1. ...

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

Flash/Flex学习笔记(36):自己动手实现一个滑块控件(JimmySilder)

先看最终的演示: 滑块条的应用实在太广泛了:mp3播放器中声量的大小控制,视频播放时的画面亮度调节,阅读新闻时字体大小的实时调整,对象的大小互动控制... 分析...

2447
来自专栏Ryan Miao

SpringMVC参数校验(针对`@RequestBody`返回`400`)

SpringMVC参数校验(针对@RequestBody返回400) From https://ryan-miao.github.io/2017/05/20/s...

3784

扫码关注云+社区