当前位置: 代码迷 >> Android >> java版二维码范例(非安卓版)
  详细解决方案

java版二维码范例(非安卓版)

热度:38   发布时间:2016-05-01 10:53:38.0
java版二维码实例(非安卓版)

今天看了下二维码感觉不错自己也都收弄个了demo,说是demo其实在基本功能的基础上进行修改而已。

 1.环境搭建。所需的jar包有

 

其中为网上参考demo。

 

其中

为在原始及开源包下载的基础上进行修改。

 

2.二维码颜色修改介绍。

public class MyZxingEncoderHandler {	/**	 * @param contents 生成的图片的名称	 * @param width    生成的图片的宽度	 * @param height   生成的图片的高度	 * @param imgPath  生成的图片路径	 */	public void encode(String contents, int width, int height, String imgPath,String logoPath) {		Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();		// 指定纠错等级		hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);		// 指定编码格式		hints.put(EncodeHintType.CHARACTER_SET, "GBK");		try {			//设置生成二维码的类型			BitMatrix bitMatrix = new MultiFormatWriter().encode(contents,BarcodeFormat.QR_CODE, width, height, hints);			//0xFFE30022 字体色,0xFFF4C2C2背景色			MyMatrixToImageWriter.writeToFile(bitMatrix, "png", imgPath,new MyMatrixToImageConfig(0xFFE30022,0xFFF4C2C2),logoPath);		} catch (Exception e) {			e.printStackTrace();		}	}		public static void main(String[] args) {		String imgPath = "zxing.png";		String logoPath = "logo.png";		String contents = http://localhost:8080/demo;		int width = 300, height = 300;		MyZxingEncoderHandler handler = new MyZxingEncoderHandler();		handler.encode(contents, width, height, imgPath,logoPath);		System.out.println("Michael ,you have finished zxing encode.");	}}
  /**   * 二维码添加自定义logo(关键部分)   */  public static void overlapImage(BufferedImage image,String imgPath, String logoPath){   try {           BufferedImage logo = ImageIO.read(new File(logoPath));           Graphics2D g = image.createGraphics(); 
	 //logo宽高          int width=image.getWidth()/5;           int height=image.getHeight()/5;
	 //logo起始位置,此目的是为logo居中显示          int x=(image.getWidth()-width)/2;          int y=(image.getHeight()-height)/2;          g.drawImage(logo, x, y, width, height, null);           g.dispose();           ImageIO.write(image, "png", new File(imgPath));         } catch (Exception e) {           e.printStackTrace();         }   }

其中详细代码可以参考MyMatrixToImageWriter.java类

logo:

最后效果图:

 

 

 

 文中所用的资源连接为:

点击打开链接

 

 

 最后:关于二维码不能解析建议调高容错误也就是:

// 指定纠错等级hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);

 

 

1楼5iasp昨天 09:18
bu cuo !
  相关解决方案