| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- package cn.com.goldenwater.dcproj.utils;
- import javax.imageio.ImageIO;
- import java.awt.*;
- import java.awt.font.FontRenderContext;
- import java.awt.geom.Rectangle2D;
- import java.awt.image.BufferedImage;
- import java.io.File;
- public class AllRlationPersUtils {
- public static String overlapImage(String backgroundPath,String qrCodePath,String yrCodePath,String cName,String eName,String orgName,String duty,String idNm,String outPutPath){
- try {
- //设置图片大小
- // BufferedImage background = resizeImage(618,1000, ImageIO.read(new File("这里是背景图片的路径!")));
- BufferedImage background = resizeImage(4869,7368, ImageIO.read(new File(backgroundPath)));
- // BufferedImage qrCode = resizeImage(150,150,ImageIO.read(new File("这里是插入二维码图片的路径!")));
- BufferedImage qrCode = resizeImage(1200,1200,ImageIO.read(new File(qrCodePath)));
- BufferedImage yrCode = resizeImage(1755,2425,ImageIO.read(new File(yrCodePath)));
- //在背景图片中添加入需要写入的信息,例如:扫描下方二维码,欢迎大家添加我的淘宝返利机器人,居家必备,省钱购物专属小秘书!
- //String message = "扫描下方二维码,欢迎大家添加我的淘宝返利机器人,居家必备,省钱购物专属小秘书!";
- FontRenderContext frc = new FontRenderContext(null, true, true);
- Font font = new Font("锐字云字库锐宋粗GB",Font.BOLD,230);
- Rectangle2D r2D = font.getStringBounds(cName, frc);
- int rWidth = (int) Math.round(r2D.getWidth());
- int rX = (int) Math.round(r2D.getX());
- Rectangle r = new Rectangle(0,0,4869,7368);
- int a = (r.width / 2) - (rWidth / 2) - rX;
- Graphics2D g = background.createGraphics();
- g.setColor(Color.BLACK);
- g.setFont(font);
- g.drawString(cName, r.x + a, 4772);
- FontRenderContext frc1 = new FontRenderContext(null, true, true);
- Font font1 = new Font("锐字云字库锐宋粗GB",Font.BOLD,168);
- Rectangle2D r2D1 = font1.getStringBounds(eName, frc1);
- int rWidth1 = (int) Math.round(r2D1.getWidth());
- int rX1 = (int) Math.round(r2D1.getX());
- Rectangle r1 = new Rectangle(0,0,4869,7368);
- int a1 = (r1.width / 2) - (rWidth1 / 2) - rX1;
- g.setFont(font1);
- g.drawString(eName, r1.x + a1, 5000);
- g.setFont(new Font("锐字云字库锐宋粗GB",Font.BOLD,168));
- g.drawString(orgName,1716 ,5446);
- g.setFont(new Font("锐字云字库锐宋粗GB",Font.BOLD,168));
- g.drawString(duty,1716 ,5816);
- g.setFont(new Font("锐字云字库锐宋粗GB",Font.BOLD,168));
- g.drawString(idNm,1716 ,6205);
- //在背景图片上添加二维码图片
- g.drawImage(qrCode, 3450, 5184, qrCode.getWidth(), qrCode.getHeight(), null);
- g.drawImage(yrCode, 1545, 1970, yrCode.getWidth(), yrCode.getHeight(), null);
- g.dispose();
- QRCodeUtil.mkdirs(outPutPath);
- ImageIO.write(background, "jpg", new File(outPutPath));
- }catch (Exception e){
- e.printStackTrace();
- }
- return null;
- }
- public static String overlapImage1(String backgroundPath,String qrCodePath,String outPutPath){
- try {
- //设置图片大小
- BufferedImage background = resizeImage(4869,7368, ImageIO.read(new File(backgroundPath)));
- BufferedImage qrCode = resizeImage(1287,1287,ImageIO.read(new File(qrCodePath)));
- //在背景图片中添加入需要写入的信息,例如:扫描下方二维码,欢迎大家添加我的淘宝返利机器人,居家必备,省钱购物专属小秘书!
- //String message = "扫描下方二维码,欢迎大家添加我的淘宝返利机器人,居家必备,省钱购物专属小秘书!";
- Graphics2D g = background.createGraphics();
- //在背景图片上添加二维码图片
- g.drawImage(qrCode, 1802, 2047, qrCode.getWidth(), qrCode.getHeight(), null);
- g.dispose();
- ImageIO.write(background, "jpg", new File(outPutPath));
- }catch (Exception e){
- e.printStackTrace();
- }
- return null;
- }
- public static String overlapImage2(String backgroundPath,String qrCodePath,String yrCodePath,String cName,String eName,String orgName,String duty,String idNm,String outPutPath){
- try {
- //设置图片大小
- // BufferedImage background = resizeImage(618,1000, ImageIO.read(new File("这里是背景图片的路径!")));
- BufferedImage background = resizeImage(3319,2285, ImageIO.read(new File(backgroundPath)));
- // BufferedImage qrCode = resizeImage(150,150,ImageIO.read(new File("这里是插入二维码图片的路径!")));
- BufferedImage qrCode = resizeImage(600,600,ImageIO.read(new File(qrCodePath)));
- BufferedImage yrCode = resizeImage(769,1055,ImageIO.read(new File(yrCodePath)));
- //在背景图片中添加入需要写入的信息,例如:扫描下方二维码,欢迎大家添加我的淘宝返利机器人,居家必备,省钱购物专属小秘书!
- //String message = "扫描下方二维码,欢迎大家添加我的淘宝返利机器人,居家必备,省钱购物专属小秘书!";
- FontRenderContext frc = new FontRenderContext(null, true, true);
- Font font = new Font("锐字云字库锐宋粗GB",Font.BOLD,180);
- Rectangle2D r2D = font.getStringBounds(cName, frc);
- int rWidth = (int) Math.round(r2D.getWidth());
- int rX = (int) Math.round(r2D.getX());
- Rectangle r = new Rectangle(0,0,2400,7368);
- int a = (r.width / 2) - (rWidth / 2) - rX;
- Graphics2D g = background.createGraphics();
- g.setColor(Color.BLACK);
- g.setFont(font);
- g.drawString(cName, r.x + a, 980);
- FontRenderContext frc1 = new FontRenderContext(null, true, true);
- Font font1 = new Font("锐字云字库锐宋粗GB",Font.BOLD,118);
- Rectangle2D r2D1 = font1.getStringBounds(eName, frc1);
- int rWidth1 = (int) Math.round(r2D1.getWidth());
- int rX1 = (int) Math.round(r2D1.getX());
- Rectangle r1 = new Rectangle(0,0,2400,7368);
- int a1 = (r1.width / 2) - (rWidth1 / 2) - rX1;
- g.setFont(font1);
- g.drawString(eName, r1.x + a1, 1130);
- g.setFont(new Font("锐字云字库锐宋粗GB",Font.BOLD,110));
- g.drawString(orgName,1050 ,1410);
- g.setFont(new Font("锐字云字库锐宋粗GB",Font.BOLD,110));
- g.drawString(duty,1050 ,1610);
- g.setFont(new Font("锐字云字库锐宋粗GB",Font.BOLD,95));
- g.drawString(idNm,1050 ,1830);
- //在背景图片上添加二维码图片
- g.drawImage(qrCode, 2544, 1375, qrCode.getWidth(), qrCode.getHeight(), null);
- g.drawImage(yrCode, 2430, 295, yrCode.getWidth(), yrCode.getHeight(), null);
- g.dispose();
- // ImageIO.write(background, "jpg", new File("这里是一个输出图片的路径"));
- ImageIO.write(background, "jpg", new File(outPutPath));
- //System.out.println(outPutPath);
- }catch (Exception e){
- e.printStackTrace();
- }
- return null;
- }
- public static String overlapImage3(String backgroundPath,String qrCodePath,String outPutPath){
- try {
- //设置图片大小
- // BufferedImage background = resizeImage(618,1000, ImageIO.read(new File("这里是背景图片的路径!")));
- BufferedImage background = resizeImage(3319,2285, ImageIO.read(new File(backgroundPath)));
- // BufferedImage qrCode = resizeImage(150,150,ImageIO.read(new File("这里是插入二维码图片的路径!")));
- BufferedImage qrCode = resizeImage(565,565,ImageIO.read(new File(qrCodePath)));
- //在背景图片中添加入需要写入的信息,例如:扫描下方二维码,欢迎大家添加我的淘宝返利机器人,居家必备,省钱购物专属小秘书!
- //String message = "扫描下方二维码,欢迎大家添加我的淘宝返利机器人,居家必备,省钱购物专属小秘书!";
- Graphics2D g = background.createGraphics();
- //在背景图片上添加二维码图片
- g.drawImage(qrCode, 2530, 1145, qrCode.getWidth(), qrCode.getHeight(), null);
- g.dispose();
- // ImageIO.write(background, "jpg", new File("这里是一个输出图片的路径"));
- ImageIO.write(background, "jpg", new File(outPutPath));
- //System.out.println(outPutPath);
- }catch (Exception e){
- e.printStackTrace();
- }
- return null;
- }
- public static String getFiles(String path,String name) {
- String fileName = "";
- File file = new File(path);
- // 如果这个路径是文件夹
- if (file.isDirectory()) {
- // 获取路径下的所有文件
- File[] files = file.listFiles();
- for (int i = 0; i < files.length; i++) {
- File fl = files[i];
- // 如果还是文件夹 递归获取里面的文件 文件夹
- if (files[i].isDirectory()) {
- fileName = getFiles(files[i].getPath(),name);
- if(org.apache.commons.lang3.StringUtils.isNotEmpty(fileName)){
- break;
- }
- } else {
- if(fl.getPath().contains(name)){
- fileName = fl.getPath();
- break;
- }
- }
- }
- } else {
- if(file.getPath().contains(name)){
- fileName = file.getPath();
- }
- }
- return fileName;
- }
- private static BufferedImage resizeImage(int x, int y, BufferedImage bfi){
- BufferedImage bufferedImage = new BufferedImage(x, y, BufferedImage.TYPE_INT_RGB);
- bufferedImage.getGraphics().drawImage(
- bfi.getScaledInstance(x, y, Image.SCALE_SMOOTH), 0, 0, null);
- return bufferedImage;
- }
- }
|