一,给图片加上生成好的二维码及文字
public static InputStream changeMerchantSeatQrcodeImage(BufferedImage zxingImage, String backgroundPath) {
InputStream imagein = null ;
ImageOutputStream imOut = null;
try{
imagein = new FileInputStream(backgroundPath);
BufferedImage image = ImageIO.read(imagein);
Graphics g = image.getGraphics();
g.setFont(new Font("方正大标宋简体",Font.BOLD,200);
g.setColor(Color.white);
g.drawString("具体内容",500,300);
BufferedImage squreImage = resizeImage(zxingImage,0.2);
g.drawImage(squreImage,27,76,squreImage.getWidth(),squreImage.getHeight(), null);
g.dispose();
JPG(BufferedImage image)
ImageIO.write(image, "png", new File("xxxx.png"));
JPEGImageEncoder jpegEncoder = JPEGCodec.createJPEGEncoder(new FileOutputStream(backgroundPath));
JPEGEncodeParam jpegEncodeParam = jpegEncoder.getDefaultJPEGEncodeParam(image); jpegEncodeParam.setDensityUnit(JPEGEncodeParam.DENSITY_UNIT_DOTS_INCH);
jpegEncoder.setJPEGEncodeParam(jpegEncodeParam);
jpegEncodeParam.setQuality(0.75f, false);
jpegEncodeParam.setXDensity(300);
jpegEncodeParam.setYDensity(300);
jpegEncoder.encode(image, jpegEncodeParam);
}catch (Exception e) {
e.printStackTrace();
}
finally {
try {
imagein.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static BufferedImage resizeImage11(BufferedImage originalImage, int times){
int width = (int)(originalImage.getWidth()*times);
int height = (int)(originalImage.getHeight()*times);
int tType = originalImage.getType();
if(0 == tType){
tType = 5;
}
BufferedImage newImage = new BufferedImage(width,height, tType);
Graphics g = newImage.getGraphics();
g.drawImage(originalImage, 0,0,width,height,null);
g.dispose();
return newImage;
}
public static void main(String[] args){
String imgPath = "二维码地址";
try {
BufferedImage image = ImageIO.read(new FileInputStream(imgPath));
changeMerchantSeatQrcodeImage(image,"样图地址");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static BufferedImage JPG(BufferedImage image){
BufferedImage newBufferedImage = new BufferedImage(image.getWidth(),image.getHeight(), BufferedImage.TYPE_INT_RGB);
newBufferedImage.createGraphics().drawImage(image, 0, 0, Color.WHITE, null);
return newBufferedImage ;
}