Java在背景图片上面加文字或者文字自动生成图片

  • 内容
  • 相关
    正巧遇到一个项目需要图片合成,查阅了网上许多资料之后整理了一份生成图片的工具类,代码如下:
package org.yygzs.acker.util;

import java.io.IOException;
import javax.imageio.ImageIO;
import java.io.File;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.util.Random;
/**
 * 生成图片的工具类
 * 下面的main方法是测试的,不需要可以删除
 * @author Mr.Li
 * @data 2017年8月18日上午10:03:11
 * @Description www.yygzs.org
 */
public class ImageAddWord {

    Random random = new Random(System.currentTimeMillis());
    BufferedImage buffImage = null;
    Graphics2D g = null;

    public ImageAddWord(int width, int height) {
        buffImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    }

    public ImageAddWord(){
        this(32, 32);
    }
    /**
     * 图片生成的方法
     * 如果要在已经有的图片上面叠加文字
     * 需要先调用g.drawImage方法吧图片绘制,然后再绘制文字
     * @param str 文字内容
     * @param ext 文件后缀名
     * 注:后缀名只能是png或者jpg
     */
    public void drawWord(String str, String ext) {
        g = buffImage.createGraphics();
        /**
         * 如果要在已有的图片叠加文字
         * 这里调用 g.drawImage()该方法
         * 绘制图片 ,酌情去掉
         * 下面的方法
         */
        g.setColor(Color.WHITE);// 在已有的图片叠加文字时该方法酌情添加
        g.fillRect(0, 0, buffImage.getWidth(), buffImage.getHeight());// 在已有的图片叠加文字时该方法酌情添加
        g.setColor(Color.BLACK);// 设定文字颜色
        g.drawString(str, 0, 12);
        String filepath = System.getProperty("java.io.tmpdir") + random.nextInt(99999) + "." + ext;
        try {
            ImageIO.write(buffImage, ext,new File(filepath));
            System.out.println("文件已经生成,路经为" + filepath);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
    public void setFont(Font font){
        g.setFont(font);
    }

    public static void main(String[] args) {
        ImageAddWord imageAddWord = new ImageAddWord(132, 16);
        String str = "我不管我最帅,我最帅。我是你们的遥大叔!";
        imageAddWord.drawWord(str,"png");
    }
}

本文标签:

版权声明:若无特殊注明,本文皆为《遥大叔》原创,转载请保留文章出处。

本文链接:Java在背景图片上面加文字或者文字自动生成图片 - https://yygzs.org/?post=13

发表评论

电子邮件地址不会被公开。 必填项已用*标注

未显示?请点击刷新

Sitemap