自定义贺卡信息,发送水印文件。
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