`
shendixiong
  • 浏览: 399507 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

二维码生成

阅读更多
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Hashtable;

import javax.imageio.ImageIO;

import org.apache.log4j.Logger;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

public final class MatrixCodeUtil{
	private static Logger logger = Logger.getLogger(MatrixCodeUtil.class);
	private static final int BLACK = 0xFF000000;
	private static final int WHITE = 0xFFFFFFFF;
	
	public static BitMatrix createQRCode(String content, int width, int height){  
        Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();     
        //设置字符编码  
        hints.put(EncodeHintType.CHARACTER_SET, "utf-8");    
        // 指定纠错等级  
        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);  
        BitMatrix matrix = null;    
        try {    
            matrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);   
        } catch (WriterException e) { 
        	logger.error(e);
            e.printStackTrace();    
        }  
        return matrix;  
    } 
	
	public static void writeToFile(BitMatrix matrix, String format, File file)
			throws IOException {
		int width = matrix.getWidth();
		int height = matrix.getHeight();
		BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
		for (int x = 0; x < width; x++) {
			for (int y = 0; y < height; y++) {
				image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE);
			}
		}
		
		ImageIO.write(image, format, file);

	}
	
	public static void addLogoWriteToFile(BitMatrix matrix, String targetPath, String logoPath, int logoPart){
		int width = matrix.getWidth();
		int height = matrix.getHeight();
		BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
		for (int x = 0; x < width; x++) {
			for (int y = 0; y < height; y++) {
				image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE);
			}
		}
		BufferedImage logo = null;
		try {
			logo = ImageIO.read(new File(logoPath));
		} catch (IOException e) {
			e.printStackTrace();
		}  
        Graphics2D g = image.createGraphics();  
        //考虑到logo照片贴到二维码中,建议大小不要超过二维码的1/5;  
        int logoWidth = width / logoPart;  
        int logoHeight = height / logoPart;  
        //logo起始位置,此目的是为logo居中显示  
        int x = (height - logoWidth) / 2;  
        int y = (height - logoHeight) / 2;  
        //绘制图  
        g.drawImage(logo, x, y, logoWidth, logoHeight, null);  
          
        g.setStroke(new BasicStroke(2));  
        g.setColor(Color.GRAY);  
        g.drawRect(x, y, logoWidth, logoHeight);  
          
        g.dispose();  
        
        try {
			ImageIO.write(image, "jpg", new File(targetPath));
		} catch (IOException e) {
			logger.error(e);
			e.printStackTrace();
		}  
        
	}
	
	public static void main(String [] arr){
		try {
            
		     String content = "['name':'test','company':'11111']";
		     String targetPath = "e:/Desktop/test.jpg";
		     String logoPath = "e:/Desktop/logo_comp.jpg";
		     int width = 400;
		     int height = 400;
		     int logoPart = 6;
		     
		     BitMatrix matrix = MatrixCodeUtil.createQRCode(content, width, height);
		     
		     MatrixCodeUtil.addLogoWriteToFile(matrix, targetPath, logoPath, logoPart);
		     
		 } catch (Exception e) {
		     e.printStackTrace();
		 }
	}

	
}

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    微信小程序 二维码生成器 (源码)

    微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码...

    小程序源码 二维码生成器 (代码+截图)

    小程序源码 二维码生成器 (代码+截图)小程序源码 二维码生成器 (代码+截图)小程序源码 二维码生成器 (代码+截图)小程序源码 二维码生成器 (代码+截图)小程序源码 二维码生成器 (代码+截图)小程序源码 二维码生成器 ...

    二维码生成器(微信小程序)源码.zip

    二维码生成器,一款可以生成二维码的微信小程序。可以生成带LOGO的二维码,也可以设置二维码颜色。 二维码生成器,一款可以生成二维码的微信小程序。可以生成带LOGO的二维码,也可以设置二维码颜色。 二维码生成...

    解压全能我那个二维码生成器加手机安卓程序非精简版

    标题中的“解压全能我那个二维码生成器加手机安卓程序非精简版”指的是一个集成了解压缩功能和二维码生成器的软件应用,特别强调了这不是精简版本,意味着它包含完整的功能集。 1. **解压缩软件**:在IT行业中,解...

    微信小程序 小工具类 二维码生成器 (源代码+截图)

    微信小程序 小工具类 二维码生成器 (源代码+截图)微信小程序 小工具类 二维码生成器 (源代码+截图)微信小程序 小工具类 二维码生成器 (源代码+截图)微信小程序 小工具类 二维码生成器 (源代码+截图)微信小...

    电脑二维码生成器

    二维码生成器是一种便捷的信息编码工具,它能够将各种数据,如文字、网址、名片信息、电子邮箱、电话号码等,转换成二维图形——二维码,供手机、电子扫描器等设备快速读取。在电脑上使用二维码生成器,可以极大地...

    二维码生成-C语言版本

    二维码生成在信息技术领域中是一项常见的任务,特别是在移动设备和物联网应用中。C语言,作为一种基础且广泛应用的编程语言,虽然不如高级脚本语言如Python或Java那样方便地提供现成的库来处理图像和编码,但依然...

    二维码生成器(绝对可用)

    二维码生成器是一种便捷的技术,能够将各种数据,如网址、文本、联系信息等,转换成图形化的二维码,便于快速扫描和读取。本项目利用C#编程语言,并借助NuGet包管理器引入了第三方组件QrCodeNet,使得开发者能够轻松...

    基于stm32的二维码生成程序

    【标题】:“基于STM32的二维码生成程序” 在物联网和嵌入式系统领域,STM32微控制器因其高性能、低功耗以及丰富的资源而被广泛应用。二维码(Quick Response Code)作为一种高效的数据编码方式,已经渗透到我们...

    基于MFC二维码打印工具

    《基于MFC的二维码生成与打印工具详解》 在信息技术高速发展的今天,二维码作为一种便捷的信息载体,被广泛应用于各种场景,如产品标识、网址跳转、电子票务等。而利用编程技术生成并打印二维码,可以进一步提升...

    二维码生成器PC版【中文】

    二维码生成器是一款在个人计算机(PC)上使用的应用程序,专门设计用于创建各种类型的数据编码为二维码,便于快速扫描和信息传递。这款中文版的二维码生成器界面友好,操作简便,适用于那些希望在数字营销、信息分享...

    tiaoxingma.rar_c++二维码生成_二维码_二维码 生成_二维码生成_二维码读取

    掌握C++二维码生成与读取技术,开发者需要理解二维码编码规范,熟悉图像处理原理,并能熟练使用提供的库。通过分析源代码和运行示例,可以深入理解其工作原理,从而在实际项目中灵活运用。 总之,"tiaoxingma.rar...

    VB制作二维码生成程序源码

    【VB制作二维码生成程序源码】是一个基于Visual Basic(VB)开发的项目,它能够创建二维码,这是一种广泛用于存储和传递信息的二维条形码。二维码在现代社会的应用非常广泛,如产品标识、网址链接、电子支付等。通过...

    帝国CMS二维码生成插件

    【帝国CMS二维码生成插件】是一款专为帝国CMS系统设计的实用工具,旨在帮助网站管理员在不依赖外部API,如Google API的情况下,快速便捷地生成和集成二维码功能。这款插件简化了二维码生成的流程,使得在自己的网站...

    微信小程序源码 二维码生成器(学习版)

    微信小程序源码 二维码生成器(学习版)微信小程序源码 二维码生成器(学习版)微信小程序源码 二维码生成器(学习版)微信小程序源码 二维码生成器(学习版)微信小程序源码 二维码生成器(学习版)微信小程序源码 二维码生成...

    基于java开发的二维码生成小程序

    【基于Java开发的二维码生成小程序】是一个利用Java编程语言实现的实用工具,它能够帮助用户快速生成可扫描的二维码,这些二维码在扫描后能够跳转到预设的网站。这个小程序集成了二维码编码技术,使得非技术人员也能...

    最强国外二维码生成工具源码 URL缩短链接网站源码

    二维码生成工具和URL缩短服务是互联网中非常实用的技术,它们在日常生活中被广泛应用于各种场景,如分享网页、名片交换、广告推广等。本源码集合提供了一款国外开发的PHP程序,旨在帮助用户创建二维码并生成短链接,...

    二维码生成软件.exe

    二维码生成软件.exe

    VSTO二维码生成源码(VB版).zip

    在这个特定的上下文中,"VSTO二维码生成源码(VB版)"指的是使用Visual Basic.NET(VB.NET)语言编写的,集成在Office应用中的二维码生成功能。 首先,我们需要理解二维码的基本原理。二维码(Quick Response Code...

    二维码生成器并加密(js+servlet)

    二维码生成器是一种将数据编码为二维图形的工具,广泛应用于移动支付、信息分享、广告推广等领域。在这个项目中,我们采用JavaScript(js)与Servlet技术来实现一个在线的二维码生成器。JavaScript是一种运行在...

Global site tag (gtag.js) - Google Analytics