d7eba203ffdca034e8e09ff0b173bf19c7849bab.svn-base 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. package cn.com.goldenwater.dcproj.utils;
  2. import javax.imageio.ImageIO;
  3. import java.awt.*;
  4. import java.awt.font.FontRenderContext;
  5. import java.awt.geom.Rectangle2D;
  6. import java.awt.image.BufferedImage;
  7. import java.io.File;
  8. public class AllRlationPersUtils {
  9. public static String overlapImage(String backgroundPath,String qrCodePath,String yrCodePath,String cName,String eName,String orgName,String duty,String idNm,String outPutPath){
  10. try {
  11. //设置图片大小
  12. // BufferedImage background = resizeImage(618,1000, ImageIO.read(new File("这里是背景图片的路径!")));
  13. BufferedImage background = resizeImage(4869,7368, ImageIO.read(new File(backgroundPath)));
  14. // BufferedImage qrCode = resizeImage(150,150,ImageIO.read(new File("这里是插入二维码图片的路径!")));
  15. BufferedImage qrCode = resizeImage(1200,1200,ImageIO.read(new File(qrCodePath)));
  16. BufferedImage yrCode = resizeImage(1755,2425,ImageIO.read(new File(yrCodePath)));
  17. //在背景图片中添加入需要写入的信息,例如:扫描下方二维码,欢迎大家添加我的淘宝返利机器人,居家必备,省钱购物专属小秘书!
  18. //String message = "扫描下方二维码,欢迎大家添加我的淘宝返利机器人,居家必备,省钱购物专属小秘书!";
  19. FontRenderContext frc = new FontRenderContext(null, true, true);
  20. Font font = new Font("锐字云字库锐宋粗GB",Font.BOLD,230);
  21. Rectangle2D r2D = font.getStringBounds(cName, frc);
  22. int rWidth = (int) Math.round(r2D.getWidth());
  23. int rX = (int) Math.round(r2D.getX());
  24. Rectangle r = new Rectangle(0,0,4869,7368);
  25. int a = (r.width / 2) - (rWidth / 2) - rX;
  26. Graphics2D g = background.createGraphics();
  27. g.setColor(Color.BLACK);
  28. g.setFont(font);
  29. g.drawString(cName, r.x + a, 4772);
  30. FontRenderContext frc1 = new FontRenderContext(null, true, true);
  31. Font font1 = new Font("锐字云字库锐宋粗GB",Font.BOLD,168);
  32. Rectangle2D r2D1 = font1.getStringBounds(eName, frc1);
  33. int rWidth1 = (int) Math.round(r2D1.getWidth());
  34. int rX1 = (int) Math.round(r2D1.getX());
  35. Rectangle r1 = new Rectangle(0,0,4869,7368);
  36. int a1 = (r1.width / 2) - (rWidth1 / 2) - rX1;
  37. g.setFont(font1);
  38. g.drawString(eName, r1.x + a1, 5000);
  39. g.setFont(new Font("锐字云字库锐宋粗GB",Font.BOLD,168));
  40. g.drawString(orgName,1716 ,5446);
  41. g.setFont(new Font("锐字云字库锐宋粗GB",Font.BOLD,168));
  42. g.drawString(duty,1716 ,5816);
  43. g.setFont(new Font("锐字云字库锐宋粗GB",Font.BOLD,168));
  44. g.drawString(idNm,1716 ,6205);
  45. //在背景图片上添加二维码图片
  46. g.drawImage(qrCode, 3450, 5184, qrCode.getWidth(), qrCode.getHeight(), null);
  47. g.drawImage(yrCode, 1545, 1970, yrCode.getWidth(), yrCode.getHeight(), null);
  48. g.dispose();
  49. QRCodeUtil.mkdirs(outPutPath);
  50. ImageIO.write(background, "jpg", new File(outPutPath));
  51. }catch (Exception e){
  52. e.printStackTrace();
  53. }
  54. return null;
  55. }
  56. public static String overlapImage1(String backgroundPath,String qrCodePath,String outPutPath){
  57. try {
  58. //设置图片大小
  59. BufferedImage background = resizeImage(4869,7368, ImageIO.read(new File(backgroundPath)));
  60. BufferedImage qrCode = resizeImage(1287,1287,ImageIO.read(new File(qrCodePath)));
  61. //在背景图片中添加入需要写入的信息,例如:扫描下方二维码,欢迎大家添加我的淘宝返利机器人,居家必备,省钱购物专属小秘书!
  62. //String message = "扫描下方二维码,欢迎大家添加我的淘宝返利机器人,居家必备,省钱购物专属小秘书!";
  63. Graphics2D g = background.createGraphics();
  64. //在背景图片上添加二维码图片
  65. g.drawImage(qrCode, 1802, 2047, qrCode.getWidth(), qrCode.getHeight(), null);
  66. g.dispose();
  67. ImageIO.write(background, "jpg", new File(outPutPath));
  68. }catch (Exception e){
  69. e.printStackTrace();
  70. }
  71. return null;
  72. }
  73. public static String overlapImage2(String backgroundPath,String qrCodePath,String yrCodePath,String cName,String eName,String orgName,String duty,String idNm,String outPutPath){
  74. try {
  75. //设置图片大小
  76. // BufferedImage background = resizeImage(618,1000, ImageIO.read(new File("这里是背景图片的路径!")));
  77. BufferedImage background = resizeImage(3319,2285, ImageIO.read(new File(backgroundPath)));
  78. // BufferedImage qrCode = resizeImage(150,150,ImageIO.read(new File("这里是插入二维码图片的路径!")));
  79. BufferedImage qrCode = resizeImage(600,600,ImageIO.read(new File(qrCodePath)));
  80. BufferedImage yrCode = resizeImage(769,1055,ImageIO.read(new File(yrCodePath)));
  81. //在背景图片中添加入需要写入的信息,例如:扫描下方二维码,欢迎大家添加我的淘宝返利机器人,居家必备,省钱购物专属小秘书!
  82. //String message = "扫描下方二维码,欢迎大家添加我的淘宝返利机器人,居家必备,省钱购物专属小秘书!";
  83. FontRenderContext frc = new FontRenderContext(null, true, true);
  84. Font font = new Font("锐字云字库锐宋粗GB",Font.BOLD,180);
  85. Rectangle2D r2D = font.getStringBounds(cName, frc);
  86. int rWidth = (int) Math.round(r2D.getWidth());
  87. int rX = (int) Math.round(r2D.getX());
  88. Rectangle r = new Rectangle(0,0,2400,7368);
  89. int a = (r.width / 2) - (rWidth / 2) - rX;
  90. Graphics2D g = background.createGraphics();
  91. g.setColor(Color.BLACK);
  92. g.setFont(font);
  93. g.drawString(cName, r.x + a, 980);
  94. FontRenderContext frc1 = new FontRenderContext(null, true, true);
  95. Font font1 = new Font("锐字云字库锐宋粗GB",Font.BOLD,118);
  96. Rectangle2D r2D1 = font1.getStringBounds(eName, frc1);
  97. int rWidth1 = (int) Math.round(r2D1.getWidth());
  98. int rX1 = (int) Math.round(r2D1.getX());
  99. Rectangle r1 = new Rectangle(0,0,2400,7368);
  100. int a1 = (r1.width / 2) - (rWidth1 / 2) - rX1;
  101. g.setFont(font1);
  102. g.drawString(eName, r1.x + a1, 1130);
  103. g.setFont(new Font("锐字云字库锐宋粗GB",Font.BOLD,110));
  104. g.drawString(orgName,1050 ,1410);
  105. g.setFont(new Font("锐字云字库锐宋粗GB",Font.BOLD,110));
  106. g.drawString(duty,1050 ,1610);
  107. g.setFont(new Font("锐字云字库锐宋粗GB",Font.BOLD,95));
  108. g.drawString(idNm,1050 ,1830);
  109. //在背景图片上添加二维码图片
  110. g.drawImage(qrCode, 2544, 1375, qrCode.getWidth(), qrCode.getHeight(), null);
  111. g.drawImage(yrCode, 2430, 295, yrCode.getWidth(), yrCode.getHeight(), null);
  112. g.dispose();
  113. // ImageIO.write(background, "jpg", new File("这里是一个输出图片的路径"));
  114. ImageIO.write(background, "jpg", new File(outPutPath));
  115. //System.out.println(outPutPath);
  116. }catch (Exception e){
  117. e.printStackTrace();
  118. }
  119. return null;
  120. }
  121. public static String overlapImage3(String backgroundPath,String qrCodePath,String outPutPath){
  122. try {
  123. //设置图片大小
  124. // BufferedImage background = resizeImage(618,1000, ImageIO.read(new File("这里是背景图片的路径!")));
  125. BufferedImage background = resizeImage(3319,2285, ImageIO.read(new File(backgroundPath)));
  126. // BufferedImage qrCode = resizeImage(150,150,ImageIO.read(new File("这里是插入二维码图片的路径!")));
  127. BufferedImage qrCode = resizeImage(565,565,ImageIO.read(new File(qrCodePath)));
  128. //在背景图片中添加入需要写入的信息,例如:扫描下方二维码,欢迎大家添加我的淘宝返利机器人,居家必备,省钱购物专属小秘书!
  129. //String message = "扫描下方二维码,欢迎大家添加我的淘宝返利机器人,居家必备,省钱购物专属小秘书!";
  130. Graphics2D g = background.createGraphics();
  131. //在背景图片上添加二维码图片
  132. g.drawImage(qrCode, 2530, 1145, qrCode.getWidth(), qrCode.getHeight(), null);
  133. g.dispose();
  134. // ImageIO.write(background, "jpg", new File("这里是一个输出图片的路径"));
  135. ImageIO.write(background, "jpg", new File(outPutPath));
  136. //System.out.println(outPutPath);
  137. }catch (Exception e){
  138. e.printStackTrace();
  139. }
  140. return null;
  141. }
  142. public static String getFiles(String path,String name) {
  143. String fileName = "";
  144. File file = new File(path);
  145. // 如果这个路径是文件夹
  146. if (file.isDirectory()) {
  147. // 获取路径下的所有文件
  148. File[] files = file.listFiles();
  149. for (int i = 0; i < files.length; i++) {
  150. File fl = files[i];
  151. // 如果还是文件夹 递归获取里面的文件 文件夹
  152. if (files[i].isDirectory()) {
  153. fileName = getFiles(files[i].getPath(),name);
  154. if(org.apache.commons.lang3.StringUtils.isNotEmpty(fileName)){
  155. break;
  156. }
  157. } else {
  158. if(fl.getPath().contains(name)){
  159. fileName = fl.getPath();
  160. break;
  161. }
  162. }
  163. }
  164. } else {
  165. if(file.getPath().contains(name)){
  166. fileName = file.getPath();
  167. }
  168. }
  169. return fileName;
  170. }
  171. private static BufferedImage resizeImage(int x, int y, BufferedImage bfi){
  172. BufferedImage bufferedImage = new BufferedImage(x, y, BufferedImage.TYPE_INT_RGB);
  173. bufferedImage.getGraphics().drawImage(
  174. bfi.getScaledInstance(x, y, Image.SCALE_SMOOTH), 0, 0, null);
  175. return bufferedImage;
  176. }
  177. }