借点代码 二维码
2015-12-24 00:00
288 查看
import
java.awt.BasicStroke;
import
java.awt.Graphics;
import
java.awt.Graphics2D;
import
java.awt.Image;
import
java.awt.Shape;
import
java.awt.geom.RoundRectangle2D;
import
java.awt.image.BufferedImage;
import
java.io.File;
import
java.io.OutputStream;
import
java.util.Hashtable;
import
java.util.Random;
import
javax.imageio.ImageIO;
import
com.google.zxing.BarcodeFormat;
import
com.google.zxing.BinaryBitmap;
import
com.google.zxing.DecodeHintType;
import
com.google.zxing.EncodeHintType;
import
com.google.zxing.MultiFormatReader;
import
com.google.zxing.MultiFormatWriter;
import
com.google.zxing.Result;
import
com.google.zxing.common.BitMatrix;
import
com.google.zxing.common.HybridBinarizer;
import
com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
/**
*二维码工具类
*
*/
public
class
QRCodeUtil{
private
static
final
StringCHARSET=
"utf-8"
;
private
static
final
StringFORMAT_NAME=
"JPG"
;
//二维码尺寸
private
7fe0
static
final
int
QRCODE_SIZE=
300
;
//LOGO宽度
private
static
final
int
WIDTH=
60
;
//LOGO高度
private
static
final
int
HEIGHT=
60
;
private
static
BufferedImagecreateImage(Stringcontent,StringimgPath,
boolean
needCompress)
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
);
BitMatrixbitMatrix=
new
MultiFormatWriter().encode(content,
BarcodeFormat.QR_CODE,QRCODE_SIZE,QRCODE_SIZE,hints);
int
width=bitMatrix.getWidth();
int
height=bitMatrix.getHeight();
BufferedImageimage=
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;
}
//插入图片
QRCodeUtil.insertImage(image,imgPath,needCompress);
return
image;
}
/**
*插入LOGO
*
*@paramsource
*二维码图片
*@paramimgPath
*LOGO图片地址
*@paramneedCompress
*是否压缩
*@throwsException
*/
private
static
void
insertImage(BufferedImagesource,StringimgPath,
boolean
needCompress)
throws
Exception{
Filefile=
new
File(imgPath);
if
(!file.exists()){
System.err.println(
""
+imgPath+
"该文件不存在!"
);
return
;
}
Imagesrc=ImageIO.read(
new
File(imgPath));