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\FontsLinux 系统字体所在目录:
/usr/share/fonts将Windows系统的字体上传到Linux /usr/share/fonts 目录下刷新配置
fc-cache -fv
查看所有字体:
fc-list
已经安装的中文字体
fc-list :lang=zh
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
