0


Java代码写春联,支持各种字体颜色设置,比python还简单

最近看到一篇 Python代码写春联的文章,什么?!Python能搞,我Java这么牛逼的语言,必须得搞!以彰显我大java的威武,和无所不能!!!

首先找到一张春联背景图案(抱歉,图片素材不好找,那原作者的素材用用!!!)

** 接下就是见证奇迹的时刻,上代码**

  1. import sun.font.FontDesignMetrics;
  2. import javax.imageio.ImageIO;
  3. import java.awt.*;
  4. import java.awt.image.BufferedImage;
  5. import java.io.*;
  6. public class Couplet {
  7. //设置生成文件存放文件夹
  8. final static String imageFolderPath = "C:\\Users\\liuya\\Desktop\\img\\";
  9. //设置背景图
  10. final static String sourceFilePath = "C:\\Users\\liuya\\Desktop\\img\\background.png";
  11. //设置字体
  12. final static String fontName = "宋体";
  13. public static void main(String[] args) {
  14. write();
  15. }
  16. public static void write(){
  17. BufferedImage image = new BufferedImage(640*4, 640+2*640*7, BufferedImage.TYPE_INT_RGB);
  18. Graphics g = image.createGraphics();
  19. g.drawImage(writeH("恭喜发财"),0,0,640*4,640,null);
  20. g.drawImage(writeV("三江进宝百业旺"),0,640,640*2,2*640*7,null);
  21. g.drawImage(writeV("四海来财万福春"),2*640,640,640*2,2*640*7,null);
  22. //输出文件
  23. try {
  24. ImageIO.write(image,"png",new File(imageFolderPath +"春联.png"));
  25. } catch (IOException e) {
  26. e.printStackTrace();
  27. }
  28. }
  29. public static BufferedImage writeH(String text){
  30. char[] ch= text.toCharArray();
  31. BufferedImage image = new BufferedImage(640*ch.length, 640, BufferedImage.TYPE_INT_RGB);
  32. Graphics g = image.createGraphics();
  33. for (int i = 0; i < ch.length; i++) {
  34. char c = ch[i];
  35. g.drawImage(fontMark(String.valueOf(c)),640*i,0,640,640,null);
  36. }
  37. g.dispose();
  38. return image;
  39. }
  40. public static BufferedImage writeV(String text){
  41. char[] ch= text.toCharArray();
  42. BufferedImage image = new BufferedImage(2*640, 2*640*ch.length, BufferedImage.TYPE_INT_RGB);
  43. Graphics g = image.createGraphics();
  44. for (int i = 0; i < ch.length; i++) {
  45. char c = ch[i];
  46. g.drawImage(fontMark(String.valueOf(c)),0,2*640*i,2*640,2*640,null);
  47. }
  48. g.dispose();
  49. return image;
  50. }
  51. public static BufferedImage fontMark(String content) {
  52. try {
  53. BufferedImage image = ImageIO.read(new File(sourceFilePath));
  54. return fontMark(image, content);
  55. } catch (IOException e) {
  56. return null;
  57. }
  58. }
  59. //文字标记
  60. public static BufferedImage fontMark(BufferedImage bufImg, String content) {
  61. Font font = new Font(fontName, Font.BOLD, 400);
  62. FontDesignMetrics metrics = FontDesignMetrics.getMetrics(font);
  63. Graphics2D graphics = bufImg.createGraphics();
  64. graphics.setColor(Color.black);
  65. graphics.setFont(font);
  66. graphics.drawString(content, 120, 460);
  67. graphics.dispose();
  68. System.out.println(content);
  69. return bufImg;
  70. }
  71. }

启动方法:idea编辑器里运行主方法即可。

看效果,上图

** 合成一张图里,方便打印,剪裁,哈哈!!!**


本文转载自: https://blog.csdn.net/weixin_40986713/article/details/122683030
版权归原作者 洛阳泰山 所有, 如有侵权,请联系我们删除。

“Java代码写春联,支持各种字体颜色设置,比python还简单”的评论:

还没有评论