/**  
* <p>Title: LogoUtil.java</p>  
* <p>Description: </p>  
* @author dsc  
* @date 2020年4月28日  
* @version 1.0  
*/
package cn.timer.api.utils.QRCode;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

/**
 * <p>
 * Title: LogoUtil.java
 * </p>
 * <p>
 * Description:
 * </p>
 * 
 * @author dsc
 * @date 2020年4月28日
 * @version 1.0
 */

public class LogoUtil {
	// 传入logo、二维码 ->带logo的二维码
	public static BufferedImage logoMatrix(BufferedImage matrixImage, String logo) throws IOException {
		// 在二维码上画logo:产生一个 二维码画板
		Graphics2D g2 = matrixImage.createGraphics();

		// 画logo: String->BufferedImage(内存)
		BufferedImage logoImg = ImageIO.read(new File(logo));
		int height = matrixImage.getHeight();
		int width = matrixImage.getWidth();
		// 纯logo图片
		g2.drawImage(logoImg, width * 2 / 5, height * 2 / 5, width * 1 / 5, height * 1 / 5, null);

		// 产生一个 画 白色圆角正方形的 画笔
		BasicStroke stroke = new BasicStroke(5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND);
		// 将画板-画笔 关联
		g2.setStroke(stroke);
		// 创建一个正方形
		RoundRectangle2D.Float round = new RoundRectangle2D.Float(width * 2 / 5, height * 2 / 5, width * 1 / 5,
				height * 1 / 5, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND);
		g2.setColor(Color.WHITE);
		g2.draw(round);

		// 灰色边框
		BasicStroke stroke2 = new BasicStroke(1, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND);
		g2.setStroke(stroke2);
		// 创建一个正方形
		RoundRectangle2D.Float round2 = new RoundRectangle2D.Float(width * 2 / 5 + 2, height * 2 / 5 + 2,
				width * 1 / 5 - 4, height * 1 / 5 - 4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND);
//        Color color = new Color(128,128,128) ;
		g2.setColor(Color.GRAY);
		g2.draw(round2);

		g2.dispose();
		matrixImage.flush();

		return matrixImage;
	}
}