解决包名冲突问题

This commit is contained in:
cuibaocheng 2021-06-04 15:29:01 +08:00
parent e3dcfaab32
commit bc3e29c2cb

View File

@ -1,186 +0,0 @@
package cn.com.tenlion.buildingpictures.util;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import javax.imageio.ImageIO;
/**
* 生成动态图片
* @类 : CreateImage
* @功能描述 : TODO
* @作者信息 : CBC
* @创建时间 : 2017-9-10上午12:21:09
* @修改备注 :
*/
public class CreateImage {
/** 模板图片路径 */
private static String TEMPLATEPAHT = "";
/** 模板印章路径 */
private static String TEMPLATEPATHYZ = "";
static {
// 初始化健康证图片模板路径
TEMPLATEPAHT = "D:\\准考证.png";
// 初始化健康证图片模板印章路径
TEMPLATEPATHYZ = "D:\\准考证章.png";
}
private static int getCount(String content, int fontSize) {
char[] c = content.toCharArray();
double count = 0;
for(int i = 0; i < c.length; i ++) {
String len = Integer.toBinaryString(c[i]);
if(len.length() > 8) {
count++;
}else{
count = (count + 0.5);
}
}
return (int) (fontSize * count);
}
public static void main(String[] args) {
Map<String, CreateImageBean> map = new HashMap<String, CreateImageBean>();
map.put("标题", new CreateImageBean("string", "安荣通2021年4期培训准考证", 32, 95, null, 1126, 40));
map.put("报名地市", new CreateImageBean("string", "呼和浩特市", 210, 175, null, null));
map.put("考生姓名", new CreateImageBean("string", "崔宝铖", 210, 250, null, null));
map.put("性别", new CreateImageBean("string", "", 210, 329, null, null));
map.put("报考级别", new CreateImageBean("string", "考全级", 210, 402, null, null));
map.put("工作单位", new CreateImageBean("string", "呼和浩特市新城区塔里公租房", 210, 480, null, null));
map.put("考点地址", new CreateImageBean("string", "呼和浩特市新城区惠新苑", 210, 558, null, null));
map.put("报名序号", new CreateImageBean("string", "C00015222", 693, 175, null, null));
map.put("证件号码", new CreateImageBean("string", "612727199303151514", 693, 250, null, null));
map.put("档案号", new CreateImageBean("string", "NHX0025666325", 693, 329, null, null));
map.put("报考专业", new CreateImageBean("string", "建筑施工安全", 693, 402, null, null));
map.put("人员头像", new CreateImageBean("image", "D:\\崔宝铖.jpg", 971, 133, 184, 220));
map.put("考试科目", new CreateImageBean("string", "全科的考试的测试", 34, 710, null, 347));
map.put("准考证号", new CreateImageBean("string", "NHXAJ022365", 381, 710, null, 292));
map.put("考试时间", new CreateImageBean("string", "2021年4月25日13点", 678, 710, null, 273));
map.put("考场", new CreateImageBean("string", "1", 954, 710, null, 106));
map.put("座位号", new CreateImageBean("string", "96", 1063, 710, null, 94));
map.put("盖章", new CreateImageBean("image", TEMPLATEPATHYZ, 855, 280, 350, 350));
createImage(map, "D:\\test.png", Color.black, 25, true, "宋体");
}
/**
* @Title : createImage
* @功能描述 : TODO
* @设定文件 : @param map 需要填充的数据集合
* @设定文件 : @param path 文件输出的路径
* @设定文件 : @return
* @返回类型 : String 文件路径
* @throws :
*/
public static String createImage(Map<String, CreateImageBean> map, String path, Color color, Integer fontSize, Boolean fontBold, String typeface) {
String filepath = null;
try{
// 加载模板图片
BufferedImage image = ImageIO.read(new File(TEMPLATEPAHT));
// 得到图片操作对象
Graphics graphics = image.getGraphics();
// 设置文字的颜色为黑色
graphics.setColor(color);
// 设置文字的字体,大小
graphics.setFont(new Font(typeface, (fontBold ? Font.BOLD : null), fontSize));
for(Entry<String, CreateImageBean> bean : map.entrySet()) {
CreateImageBean b = bean.getValue();
if("string".equals(b.getType())) {
// 自定义字体大小
if(b.getFontSize() != null) {
graphics.setFont(new Font(typeface, (fontBold ? Font.BOLD : null), b.getFontSize()));
}
if(b.getWidth() != null) {
int count = getCount(b.getContent(), (b.getFontSize() == null ? fontSize : b.getFontSize()));
int startX = ((b.getWidth()) - count) / 2;
// 将文字放入模板中
graphics.drawString(b.getContent(), startX + b.getX(), b.getY());
}else{
// 将文字放入模板中
graphics.drawString(b.getContent(), b.getX(), b.getY());
}
if(b.getFontSize() != null) {
// 将字体大小切换回默认
graphics.setFont(new Font(typeface, (fontBold ? Font.BOLD : null), fontSize));
}
}
if("image".equals(b.getType())) {
File file = new File(b.getContent());
// 对头像进行裁剪
Image img = thumbnail(file, b.getHeight(), b.getWidth());
// 将头像放入模板中
graphics.drawImage(img, b.getX(), b.getY(), null);
}
}
// 将健康证图片存储到本地
createImage(path, image);
}catch (Exception e) {
e.printStackTrace();
}
return filepath;
}
/**
* 将image对象存储到本地
* @Title : createImage
* @功能描述 : TODO
* @设定文件 : @param fileLocation 本地路径
* @设定文件 : @param image 图片对象
* @返回类型 : void
* @throws :
*/
private static void createImage(String fileLocation, BufferedImage image) {
try {
String formatName = fileLocation.substring(fileLocation.lastIndexOf(".") + 1);
ImageIO.write(image, formatName , new File(fileLocation));
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 图片压缩-按照固定宽高原图压缩
* @Title : thumbnail
* @功能描述 : TODO
* @设定文件 : @param img 本地图片地址
* @设定文件 : @param width 图片宽度
* @设定文件 : @param height 图片高度
* @设定文件 : @return
* @设定文件 : @throws IOException
* @返回类型 : Image
* @throws :
*/
public static Image thumbnail(File img, int width, int height) throws IOException {
BufferedImage BI = ImageIO.read(img);
Image image = BI.getScaledInstance(width, height, Image.SCALE_SMOOTH);
BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics();
g.setColor(Color.RED);
g.drawImage(image, 0, 0, null);
g.dispose();
return image;
}
}