4 changed files with 88 additions and 2 deletions
@ -0,0 +1,55 @@ |
|||||
|
package com.elink.esua.epdc.commons.tools.utils; |
||||
|
|
||||
|
import java.awt.image.BufferedImage; |
||||
|
import java.io.ByteArrayOutputStream; |
||||
|
import java.util.Hashtable; |
||||
|
import org.apache.axis.encoding.Base64; |
||||
|
|
||||
|
import javax.imageio.ImageIO; |
||||
|
|
||||
|
import com.google.zxing.BarcodeFormat; |
||||
|
import com.google.zxing.EncodeHintType; |
||||
|
import com.google.zxing.MultiFormatWriter; |
||||
|
import com.google.zxing.common.BitMatrix; |
||||
|
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; |
||||
|
|
||||
|
public class QRCodeGenerator { |
||||
|
|
||||
|
private static final String CHARSET = "utf-8"; |
||||
|
private static final String FORMAT_NAME = "JPG"; |
||||
|
// 二维码尺寸
|
||||
|
private static final int QRCODE_SIZE = 300; |
||||
|
// LOGO宽度
|
||||
|
private static final int WIDTH = 60; |
||||
|
// LOGO高度
|
||||
|
private static final int HEIGHT = 60; |
||||
|
|
||||
|
public static String createImage(String content) throws Exception { |
||||
|
Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>(); |
||||
|
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); |
||||
|
hints.put(EncodeHintType.CHARACTER_SET, CHARSET); |
||||
|
hints.put(EncodeHintType.MARGIN, 1); |
||||
|
BitMatrix bitMatrix = new MultiFormatWriter().encode(content, |
||||
|
BarcodeFormat.QR_CODE, QRCODE_SIZE, QRCODE_SIZE, hints); |
||||
|
int width = bitMatrix.getWidth(); |
||||
|
int height = bitMatrix.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, bitMatrix.get(x, y) ? 0xFF000000 |
||||
|
: 0xFFFFFFFF); |
||||
|
} |
||||
|
} |
||||
|
// if (imgPath == null || "".equals(imgPath)) {
|
||||
|
// return image;
|
||||
|
// }
|
||||
|
ByteArrayOutputStream stream = new ByteArrayOutputStream(); |
||||
|
ImageIO.write(image, "png", stream); |
||||
|
String base64 = Base64.encode(stream.toByteArray()); |
||||
|
System.out.println(base64); |
||||
|
stream.flush(); |
||||
|
stream.close(); |
||||
|
return base64; |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue