Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3648410
  • 博文数量: 365
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2522
  • 用 户 组: 普通用户
  • 注册时间: 2019-10-28 13:40
文章分类

全部博文(365)

文章存档

2023年(8)

2022年(130)

2021年(155)

2020年(50)

2019年(22)

我的朋友

分类: Python/Ruby

2022-02-23 17:09:00

package com.zmh.daily.spring;

import javax.imageio.ImageIO;

import java.awt.*;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

/**

 * 春联

 *

 * @version v1.0

 * @Author: sunshinezhang

 * @Date: 2022/1/25 3:27 下午

 */

public class Couplet {

    //设置生成文件存放文件夹

    final static String imageFolderPath = "/Users/sunshinezhang/Desktop/1/";

    //设置背景图

    final static String sourceFilePath = "/Users/sunshinezhang/Desktop/1/2.png";

    //设置字体

    final static String fontName = "宋体";

    public static void main(String[] args) {

        write();

    }

    public static void write() {

        BufferedImage image = new BufferedImage(640 * 4, 640 + 2 * 640 * 7, BufferedImage.TYPE_INT_RGB);

        Graphics g = image.createGraphics();

        g.drawImage(writeH("辞旧迎新"), 0, 0, 640 * 4, 640, null);

        g.drawImage(writeV("旧岁又添几个喜"), 0, 640, 640 * 2, 2 * 640 * 7, null);

        g.drawImage(writeV("新年更上一层楼"), 2 * 640, 640, 640 * 2, 2 * 640 * 7, null);

        //输出文件

        try {

            ImageIO.write(image, "png", new File(imageFolderPath + "春联.png"));

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

    //横批

    public static BufferedImage writeH(String text) {

        char[] ch = text.toCharArray();

        BufferedImage image = new BufferedImage(640 * ch.length, 640, BufferedImage.TYPE_INT_RGB);

        Graphics g =外汇跟单gendan5.com image.createGraphics();

        for (int i = 0; i < ch.length; i++) {

            char c = ch[i];

            g.drawImage(fontMark(String.valueOf(c)), 640 * i, 0, 640, 640, null);

        }

        g.dispose();

        return image;

    }

    //上下联

    public static BufferedImage writeV(String text) {

        char[] ch = text.toCharArray();

        BufferedImage image = new BufferedImage(2 * 640, 2 * 640 * ch.length, BufferedImage.TYPE_INT_RGB);

        Graphics g = image.createGraphics();

        for (int i = 0; i < ch.length; i++) {

            char c = ch[i];

            g.drawImage(fontMark(String.valueOf(c)), 0, 2 * 640 * i, 2 * 640, 2 * 640, null);

        }

        g.dispose();

        return image;

    }

    public static BufferedImage fontMark(String content) {

        try {

            BufferedImage image = ImageIO.read(new File(sourceFilePath));

            return fontMark(image, content);

        } catch (IOException e) {

            return null;

        }

    }

    //文字标记

    public static BufferedImage fontMark(BufferedImage bufImg, String content) {

        Font font = new Font(fontName, Font.BOLD, 350);

        Graphics2D graphics = bufImg.createGraphics();

        graphics.setColor(Color.black);

        graphics.setFont(font);

        graphics.drawString(content, 230, 540);

        graphics.dispose();

        System.out.println(content);

        return bufImg;

    }

}

阅读(877) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~