最近有负责微信开发,对于微信开发的项目,肯定少不了二维码啦,正好有个这样的需求,这对不同的商品生成一个二维码,扫码即刻下单。博主就弄了一个二维码生成的工具类。
弄出来之后,产品经理又说了,中间放上公司的logo是不是好一点?加上吧,
加上公司logo之后,产品经理想了想,每个商品都有个二维码,销售人员有很多个商品二维码,群发给用户,在qq群上,微信群上,怎么知道哪个二维码对应哪个商品的呢?于是决定要加上商品名称。最后商品二维码就成了下面这个模样了(当然啦,这里面的logo并不是博主现职公司的)。
效果已经出来啦,下面附上代码啦
如果读者不需要logo或者二维码名称的,读懂代码后进行删减即可。注释多多,还是很容易看懂的。
package com.luo.wctweb.util;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.imageio.ImageIO;
import org.apache.commons.codec.binary.Base64;
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;
/**
* @Description: (二维码)
* @author:luoguohui
* @date:2015-10-29 下午05:27:13
*/
public class ZXingCode
{
private static final int QRCOLOR = 0xFF000000; //默认是黑色
private static final int BGWHITE = 0xFFFFFFFF; //背景颜色
public static void main(String[] args) throws WriterException
{
try
{
getLogoQRCode("https://www.baidu.com/", "跳转到百度的二维码");
}
catch (Exception e)
{
e.printStackTrace();
}
}
/**
* 生成带logo的二维码图片
*
* @param qrPic
* @param logoPic
*/
public static String getLogoQRCode(String qrUrl,String productName)
{
// String filePath = (javax.servlet.http.HttpServletRequest)request.getSession().getServletContext().getRealPath("/") + "resources/images/logoImages/llhlogo.png";
//filePath是二维码logo的路径,但是实际中我们是放在项目的某个路径下面的,所以路径用上面的,把下面的注释就好
String filePath = "C:/Users/luoguohui/Desktop/78310a55b319ebc4fa3aef658126cffc1f17168f.png"; //TODO
String content = qrUrl;
try
{
ZXingCode zp = new ZXingCode();
BufferedImage bim &#