我正在尝试使用 java 在图像上添加水印。目前,我在扩展名为 png、jpeg 的图像上添加了水印,但代码不适用于 tiff 图像。以前它给出了空指针错误,但在包含十二个核心和 tiff 插件 jar 之后,空指针错误消失了,代码正在逐行执行。但是输出的 tiff 图像没有水印。
BufferedImage sourceImage = ImageIO.read(...);
Graphics2D g2d = (Graphics2D) sourceImage.getGraphics();
AlphaComposite alphaChannel = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.1f);
g2d.setComposite(alphaChannel);
g2d.setColor(Color.BLACK);
g2d.setFont(new java.awt.Font("Times New Roman", Font.BOLD, 64));
FontMetrics fontMetrics = g2d.getFontMetrics();
Rectangle2D rect = fontMetrics.getStringBounds(watermarkText, g2d);
int centerX = (sourceImage.getWidth() - (int) rect.getWidth()) / 2;
int centerY = sourceImage.getHeight() / 2;
FontMetrics fm = g2d.getFontMetrics();
g2d.drawString(watermarkText, centerX, centerY);
ImageIO.write(sourceImage,extension, outFile);
任何人都可以提供一种在 tiff 图像上添加水印的方法吗?