生成二維碼並直接上傳到七牛上
package com.casic.util;
import com.casic.anfangyun.expo.model.ExpoApply;
import com.casic.anfangyun.expo.model.ExpoAudienceRegister;
import com.google.gson.Gson;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import javax.imageio.ImageIO;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.io.IOException;
import java.io.InputStream;
import java.awt.image.BufferedImage;
/**生成二維碼*/
public class QRCode {
private static final int BLACK = 0xFF000000;
private static final int WHITE = 0xFFFFFFFF;
private QRCode() {
}
public static BufferedImage toBufferedImage(BitMatrix matrix) {
int width = matrix.getWidth();
int height = matrix.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, matrix.get(x, y) ? BLACK : WHITE);
}
}
return image;
}
public static void writeToFile(BitMatrix matrix, String format, File file) throws IOException {
BufferedImage image = toBufferedImage(matrix);
if (!ImageIO.write(image, format, file)) {
throw new IOException("Could not write an image of format "+ format + " to " + file);
}
}
/**生成二維碼*/
public static String uploadImg(ExpoAudienceRegister expoAudienceRegister){ //傳入的參數
Configuration cfg = new Configuration(Zone.zone0());
//...其他參數參考類註釋
UploadManager uploadManager = new UploadManager(cfg);
//...生成上傳憑證,然後準備上傳
String accessKey = "=========";
String secretKey = "==========";
String bucket = ConfigInno.bucket;
//默認不指定key的情況下,以文件內容的hash值作爲文件名
String key = null;
try {
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
try {
// 生成二維碼
// String uploadImgUrl = PropertiesUtils.getProperty("uploadImgUrl")+"image/carousel";
// String imgName =System.currentTimeMillis()+".png";
// File outputFile = new File(uploadImgUrl,imgName);
// QRCode.writeToFile(bitMatrix, "png", outputFile);
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
Map hints = new HashMap();
// 內容所使用編碼
hints.put(EncodeHintType.CHARACTER_SET, "utf8");
//所傳信息
String QRCodeString=expoAudienceRegister.getId()+"";
if(null != expoAudienceRegister.getFrontuserid() && null != expoAudienceRegister.getBbsmoduleid()){
QRCodeString=expoAudienceRegister.getFrontuserid()+"_"+expoAudienceRegister.getBbsmoduleid();
}
BitMatrix bitMatrix = multiFormatWriter.encode(QRCodeString+"", BarcodeFormat.QR_CODE, 200, 200, hints);
BufferedImage bufferedImage = QRCode.toBufferedImage(bitMatrix);
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "jpg", os);
InputStream is = new ByteArrayInputStream(os.toByteArray());
Response response = uploadManager.put(is,key,upToken,null, null);
//解析上傳成功的結果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
// System.out.println(putRet.key+"二維碼");
return putRet.key;
} catch (QiniuException ex) {
Response r = ex.response;
System.err.println(r.toString());
try {
System.err.println(r.bodyString());
} catch (QiniuException ex2) {
}
}
} catch (Exception ex) {
}
return "";
}
}
import com.casic.anfangyun.expo.model.ExpoApply;
import com.casic.anfangyun.expo.model.ExpoAudienceRegister;
import com.google.gson.Gson;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import javax.imageio.ImageIO;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.io.IOException;
import java.io.InputStream;
import java.awt.image.BufferedImage;
/**生成二維碼*/
public class QRCode {
private static final int BLACK = 0xFF000000;
private static final int WHITE = 0xFFFFFFFF;
private QRCode() {
}
public static BufferedImage toBufferedImage(BitMatrix matrix) {
int width = matrix.getWidth();
int height = matrix.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, matrix.get(x, y) ? BLACK : WHITE);
}
}
return image;
}
public static void writeToFile(BitMatrix matrix, String format, File file) throws IOException {
BufferedImage image = toBufferedImage(matrix);
if (!ImageIO.write(image, format, file)) {
throw new IOException("Could not write an image of format "+ format + " to " + file);
}
}
/**生成二維碼*/
public static String uploadImg(ExpoAudienceRegister expoAudienceRegister){ //傳入的參數
Configuration cfg = new Configuration(Zone.zone0());
//...其他參數參考類註釋
UploadManager uploadManager = new UploadManager(cfg);
//...生成上傳憑證,然後準備上傳
String accessKey = "=========";
String secretKey = "==========";
String bucket = ConfigInno.bucket;
//默認不指定key的情況下,以文件內容的hash值作爲文件名
String key = null;
try {
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
try {
// 生成二維碼
// String uploadImgUrl = PropertiesUtils.getProperty("uploadImgUrl")+"image/carousel";
// String imgName =System.currentTimeMillis()+".png";
// File outputFile = new File(uploadImgUrl,imgName);
// QRCode.writeToFile(bitMatrix, "png", outputFile);
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
Map hints = new HashMap();
// 內容所使用編碼
hints.put(EncodeHintType.CHARACTER_SET, "utf8");
//所傳信息
String QRCodeString=expoAudienceRegister.getId()+"";
if(null != expoAudienceRegister.getFrontuserid() && null != expoAudienceRegister.getBbsmoduleid()){
QRCodeString=expoAudienceRegister.getFrontuserid()+"_"+expoAudienceRegister.getBbsmoduleid();
}
BitMatrix bitMatrix = multiFormatWriter.encode(QRCodeString+"", BarcodeFormat.QR_CODE, 200, 200, hints);
BufferedImage bufferedImage = QRCode.toBufferedImage(bitMatrix);
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "jpg", os);
InputStream is = new ByteArrayInputStream(os.toByteArray());
Response response = uploadManager.put(is,key,upToken,null, null);
//解析上傳成功的結果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
// System.out.println(putRet.key+"二維碼");
return putRet.key;
} catch (QiniuException ex) {
Response r = ex.response;
System.err.println(r.toString());
try {
System.err.println(r.bodyString());
} catch (QiniuException ex2) {
}
}
} catch (Exception ex) {
}
return "";
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.