- 浏览: 16989 次
- 性别:
- 来自: 杭州
最新评论
package com.gce; import java.io.*; import java.util.Date; import java.awt.*; import java.awt.image.*; import javax.imageio.*; import com.swetake.util.Qrcode; public class QRCodeEncoderTest { /** Creates a new instance of QRCodeEncoderTest */ public QRCodeEncoderTest() { } public static void create_image(String sms_info)throws Exception{ try{ Qrcode testQrcode =new Qrcode(); testQrcode.setQrcodeErrorCorrect('M'); testQrcode.setQrcodeEncodeMode('B'); testQrcode.setQrcodeVersion(7); String testString = sms_info; byte[] d = testString.getBytes("gbk"); System.out.println(d.length); //BufferedImage bi = new BufferedImage(98, 98, BufferedImage.TYPE_INT_RGB); BufferedImage bi = new BufferedImage(98, 98, BufferedImage.TYPE_BYTE_BINARY); Graphics2D g = bi.createGraphics(); g.setBackground(Color.WHITE); g.clearRect(0, 0, 98, 98); g.setColor(Color.BLACK); // 限制最大字节数为120 if (d.length>0 && d.length <120){ boolean[][] s = testQrcode.calQrcode(d); for (int i=0;i<s.length;i++){ for (int j=0;j<s.length;j++){ if (s[j][i]) { g.fillRect(j*2+3,i*2+3,2,2); } } } } g.dispose(); bi.flush(); File f = new File("D:\\QRCodeTest\\"+sms_info+".jpg"); if(!f.exists()){ f.createNewFile(); } //创建图片 ImageIO.write(bi, "jpg", f); } // end try catch (Exception e) { e.printStackTrace(); } // end catch } public static void main(String[] args) throws Exception { System.out.println(new Date()); for(int i =1; i < 100000; i ++){ QRCodeEncoderTest.create_image(i+""); } System.out.println(new Date()); } // end main }
package com.gce; import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import com.swetake.util.Qrcode; /** * 二维码生成器 * @blog http://sjsky.iteye.com * @author Michael */ public class QRCodeEncoderHandler { /** * 生成二维码(QRCode)图片 * @param content * @param imgPath */ public void encoderQRCode(String content, String imgPath) { try { Qrcode qrcodeHandler = new Qrcode(); qrcodeHandler.setQrcodeErrorCorrect('M'); qrcodeHandler.setQrcodeEncodeMode('B'); qrcodeHandler.setQrcodeVersion(7); System.out.println(content); byte[] contentBytes = content.getBytes("gb2312"); BufferedImage bufImg = new BufferedImage(140, 140, BufferedImage.TYPE_INT_RGB); Graphics2D gs = bufImg.createGraphics(); gs.setBackground(Color.WHITE); gs.clearRect(0, 0, 140, 140); // 设定图像颜色 > BLACK gs.setColor(Color.BLACK); // 设置偏移量 不设置可能导致解析出错 int pixoff = 2; // 输出内容 > 二维码 if (contentBytes.length > 0 && contentBytes.length < 120) { boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes); for (int i = 0; i < codeOut.length; i++) { for (int j = 0; j < codeOut.length; j++) { if (codeOut[j][i]) { gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3); } } } } else { System.err.println("QRCode content bytes length = " + contentBytes.length + " not in [ 0,120 ]. "); } gs.dispose(); bufImg.flush(); File imgFile = new File(imgPath); // 生成二维码QRCode图片 ImageIO.write(bufImg, "png", imgFile); } catch (Exception e) { e.printStackTrace(); } } /** * @param args the command line arguments */ public static void main(String[] args) { String imgPath = "C://Michael_QRCode.png"; String content = "Hello,welcome to QRCode!" + "\nEMail [ SJ134@gmail.com ]" + "\nTwitter [ @sj134 ]"; QRCodeEncoderHandler handler = new QRCodeEncoderHandler(); handler.encoderQRCode(content, imgPath); System.out.println("encoder QRcode success"); } }
package com.gce; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import jp.sourceforge.qrcode.QRCodeDecoder; import jp.sourceforge.qrcode.data.QRCodeImage; import jp.sourceforge.qrcode.exception.DecodingFailedException; /** * @blog http://sjsky.iteye.com * @author Michael */ public class QRCodeDecoderHandler { /** * 解码二维码 * @param imgPath * @return String */ public String decoderQRCode(String imgPath) { // QRCode 二维码图片的文件 File imageFile = new File(imgPath); BufferedImage bufImg = null; String decodedData = null; try { bufImg = ImageIO.read(imageFile); QRCodeDecoder decoder = new QRCodeDecoder(); decodedData = new String(decoder.decode(new J2SEImage(bufImg))); // try { // System.out.println(new String(decodedData.getBytes("gb2312"), // "gb2312")); // } catch (Exception e) { // // TODO: handle exception // } } catch (IOException e) { System.out.println("Error: " + e.getMessage()); e.printStackTrace(); } catch (DecodingFailedException dfe) { System.out.println("Error: " + dfe.getMessage()); dfe.printStackTrace(); } return decodedData; } /** * @param args the command line arguments */ public static void main(String[] args) { QRCodeDecoderHandler handler = new QRCodeDecoderHandler(); String imgPath = "C://Michael_QRCode.png"; String decoderContent = handler.decoderQRCode(imgPath); System.out.println("解析结果如下:"); System.out.println(decoderContent); System.out.println("========decoder success!!!"); } class J2SEImage implements QRCodeImage { BufferedImage bufImg; public J2SEImage(BufferedImage bufImg) { this.bufImg = bufImg; } public int getWidth() { return bufImg.getWidth(); } public int getHeight() { return bufImg.getHeight(); } public int getPixel(int x, int y) { return bufImg.getRGB(x, y); } } }
这里需要用下面的几个jar包
- qrcode.jar (48.7 KB)
- 下载次数: 17
- Qrcode_swetake.jar (1013.7 KB)
- 下载次数: 22
发表评论
-
几种随机数
2012-08-28 10:12 559摘要:众所周知,随机数是任何一种编程语言最基本的特征之一。而 ... -
如何是用annotation 介绍
2012-08-27 17:32 839package com.annotation; impo ... -
各种四舍五入的模式
2012-08-24 17:02 1108package com.sc; import java. ... -
扫雷算法
2012-08-24 09:17 1101package com.common; public c ... -
单链表实现
2012-08-23 09:35 647package com.bean; public cla ... -
分数加减乘除 实现
2012-08-23 09:36 1020package com.bean; public cla ... -
Josephu问题实现
2012-08-23 09:36 775package com.acm; import java ... -
迷宫算法实现
2012-08-22 15:56 771定义一个二维数组: int maze[5][5] = { 0 ... -
全排列算法实现
2012-08-22 15:52 797package com.arithmetic; impo ... -
数独算法实现(循环方式)
2012-08-22 14:25 1637package com.sudoku; import j ... -
数独算法实现(递归方式)
2012-08-22 14:16 1248package com.sudoku; public c ... -
各类排序算法实现
2012-08-22 14:15 596package com.arithmetic; impo ...
相关推荐
微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码生成器 (源码)微信小程序 二维码...
小程序源码 二维码生成器 (代码+截图)小程序源码 二维码生成器 (代码+截图)小程序源码 二维码生成器 (代码+截图)小程序源码 二维码生成器 (代码+截图)小程序源码 二维码生成器 (代码+截图)小程序源码 二维码生成器 ...
二维码生成器,一款可以生成二维码的微信小程序。可以生成带LOGO的二维码,也可以设置二维码颜色。 二维码生成器,一款可以生成二维码的微信小程序。可以生成带LOGO的二维码,也可以设置二维码颜色。 二维码生成...
标题中的“解压全能我那个二维码生成器加手机安卓程序非精简版”指的是一个集成了解压缩功能和二维码生成器的软件应用,特别强调了这不是精简版本,意味着它包含完整的功能集。 1. **解压缩软件**:在IT行业中,解...
微信小程序 小工具类 二维码生成器 (源代码+截图)微信小程序 小工具类 二维码生成器 (源代码+截图)微信小程序 小工具类 二维码生成器 (源代码+截图)微信小程序 小工具类 二维码生成器 (源代码+截图)微信小...
二维码生成器是一种便捷的信息编码工具,它能够将各种数据,如文字、网址、名片信息、电子邮箱、电话号码等,转换成二维图形——二维码,供手机、电子扫描器等设备快速读取。在电脑上使用二维码生成器,可以极大地...
二维码生成在信息技术领域中是一项常见的任务,特别是在移动设备和物联网应用中。C语言,作为一种基础且广泛应用的编程语言,虽然不如高级脚本语言如Python或Java那样方便地提供现成的库来处理图像和编码,但依然...
二维码生成器是一种便捷的技术,能够将各种数据,如网址、文本、联系信息等,转换成图形化的二维码,便于快速扫描和读取。本项目利用C#编程语言,并借助NuGet包管理器引入了第三方组件QrCodeNet,使得开发者能够轻松...
【标题】:“基于STM32的二维码生成程序” 在物联网和嵌入式系统领域,STM32微控制器因其高性能、低功耗以及丰富的资源而被广泛应用。二维码(Quick Response Code)作为一种高效的数据编码方式,已经渗透到我们...
《基于MFC的二维码生成与打印工具详解》 在信息技术高速发展的今天,二维码作为一种便捷的信息载体,被广泛应用于各种场景,如产品标识、网址跳转、电子票务等。而利用编程技术生成并打印二维码,可以进一步提升...
二维码生成器是一款在个人计算机(PC)上使用的应用程序,专门设计用于创建各种类型的数据编码为二维码,便于快速扫描和信息传递。这款中文版的二维码生成器界面友好,操作简便,适用于那些希望在数字营销、信息分享...
掌握C++二维码生成与读取技术,开发者需要理解二维码编码规范,熟悉图像处理原理,并能熟练使用提供的库。通过分析源代码和运行示例,可以深入理解其工作原理,从而在实际项目中灵活运用。 总之,"tiaoxingma.rar...
【VB制作二维码生成程序源码】是一个基于Visual Basic(VB)开发的项目,它能够创建二维码,这是一种广泛用于存储和传递信息的二维条形码。二维码在现代社会的应用非常广泛,如产品标识、网址链接、电子支付等。通过...
【帝国CMS二维码生成插件】是一款专为帝国CMS系统设计的实用工具,旨在帮助网站管理员在不依赖外部API,如Google API的情况下,快速便捷地生成和集成二维码功能。这款插件简化了二维码生成的流程,使得在自己的网站...
微信小程序源码 二维码生成器(学习版)微信小程序源码 二维码生成器(学习版)微信小程序源码 二维码生成器(学习版)微信小程序源码 二维码生成器(学习版)微信小程序源码 二维码生成器(学习版)微信小程序源码 二维码生成...
【基于Java开发的二维码生成小程序】是一个利用Java编程语言实现的实用工具,它能够帮助用户快速生成可扫描的二维码,这些二维码在扫描后能够跳转到预设的网站。这个小程序集成了二维码编码技术,使得非技术人员也能...
二维码生成工具和URL缩短服务是互联网中非常实用的技术,它们在日常生活中被广泛应用于各种场景,如分享网页、名片交换、广告推广等。本源码集合提供了一款国外开发的PHP程序,旨在帮助用户创建二维码并生成短链接,...
在标题中提到的“二维码生成器exe文件”,这可能是指该软件内集成了二维码生成功能,用户可以通过这个工具创建二维码,方便地分享数据或者链接。 对于“解压加密解压”这一标签,这意味着解压缩全能王具备处理加密...
二维码生成软件.exe
二维码生成器是一种将数据编码为二维图形的工具,广泛应用于移动支付、信息分享、广告推广等领域。在这个项目中,我们采用JavaScript(js)与Servlet技术来实现一个在线的二维码生成器。JavaScript是一种运行在...