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

相关文章

来自专栏deepcc

emmet(Zen coding)前端写代码神器

3727
来自专栏androidBlog

常用的自定义控件四(QuickBarView)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/...

771
来自专栏緣來來來

Python爬虫 --- 2.2 Scrapy 选择器的介绍

Scrapy提取数据有自己的一套机制,被称作选择器(selectors),通过特定的Xpath或者CSS表达式来选择HTML文件的某个部分 Xpath是专门在X...

1132
来自专栏向治洪

iOS 滚动视图的复用问题解决方案

LazyScroll是什么 LazyScrollView 继承自ScrollView,目标是解决异构(与TableView的同构对比)滚动视图的复用回收问题。它...

1796
来自专栏刘晓杰

嵌套滑动机制详解

4348
来自专栏小狼的世界

YUI3 Overlay的使用

YUI3的Overlay为我们提供了一个创建叠加层的方便的方(从名字就可以看出来),他扩展自Widget类。目前的版本,仅支持简单的页面XY定位、相对于一个No...

843
来自专栏Hongten

java画图程序_图片用字母画出来_源码发布_版本二

在上一个版本:java画图程序_图片用字母画出来_源码发布 基础上,增加了图片同比例缩放,使得大像素图片可以很好地显示画在Notepad++中。

1422
来自专栏林德熙的博客

win10 uwp 分治法

算法涉及到了一个平面几何的知识。就是三角形p1p2p3的面积等于以下行列式的二分之一: % <![CDATA[ \begin{array}{cccc} | ...

741
来自专栏技术之路

wcf http 返回图片

做项目时候用wcf 返回图片,从官网上找了找一次只能返回一张图片,但是一直查不到返回多个图片的方法,ios 可以异步加载看速度也可以 ,先记录一下等以后用解决了...

2206
来自专栏编程坑太多

java BufferedImage Graphics 绘制验证码

1603

扫码关注云+社区