Java 图片中添加文字(水印)

自定义贺卡信息,发送水印文件。

1.Java工具类

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;

public class ImageTest {

    public static void main(String[] args) throws IOException {
        // 读取本地图片文件
        File file = new File("D:/test1.jpg");

        // 将文件对象转化为图片对象
        BufferedImage image = ImageIO.read(file);

        // 读取远端文件
        // URL url = new URL("https://zyq2022.oss-cn-chengdu.aliyuncs.com/test.png");
        // BufferedImage image = ImageIO.read(url.openStream());


        System.out.println("图片宽度:" + image.getWidth() + " px");
        System.out.println("图片高度:" + image.getHeight() + " px");

        // 创建画笔
        Graphics2D pen = image.createGraphics();
        // 设置画笔颜色
        pen.setColor(new Color(87, 90, 89, 200));
        // 设置画笔字体
        pen.setFont(new Font("楷体", Font.BOLD, 20));
        // 写上水印文字和坐标
        pen.drawString("水印", 208, 1111);
        // 创建新图片文件
        File newFile = new File("D:/test2.png");
        // 将处理好的图片数据写入到新图片文件中
        FileOutputStream fos = new FileOutputStream(file);
        ImageIO.write(image, "png", fos);

    }


}

2.如何查询图片中添加信息位置?

右击图片->打开方式->画图  鼠标悬浮着添加信息位置 左下角显示图片的X轴与Y轴信息

3.系统支持的字体都有哪些

/**
 * 显示当前系统环境支持的字体
 */
@Test
public void getAvailableFontFamilyNames() {
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    String[] fontNames = ge.getAvailableFontFamilyNames();
    for (String fontName : fontNames) {
        System.out.println(fontName);
    }
}

4.Windows字体同步到Linux

Windows 系统字体所在目录:
C:\Windows\Fonts

Linux 系统字体所在目录:
/usr/share/fonts

将Windows系统的字体上传到Linux /usr/share/fonts 目录下

刷新配置
fc-cache -fv
查看所有字体:
fc-list
已经安装的中文字体
fc-list :lang=zh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值