java给图片添加文字水印,文件变大了很多
时间: 2024-02-06 16:02:41 浏览: 344
对于给图片添加水印导致文件变大的问题,主要是因为添加了额外的像素信息。
如果只是添加简单的文字水印,可以尝试使用透明度来减小像素信息的增加,从而减小文件大小。
以下是给图片添加透明度文字水印的示例代码:
```java
File originalFile = new File("original.jpg");
BufferedImage originalImage = ImageIO.read(originalFile);
int width = originalImage.getWidth();
int height = originalImage.getHeight();
BufferedImage newImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g = newImage.createGraphics();
g.drawImage(originalImage, 0, 0, null);
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f)); // 设置透明度
g.setColor(Color.RED);
g.setFont(new Font("Arial", Font.BOLD, 30));
g.drawString("watermark", 50, 50);
g.dispose();
File newFile = new File("watermarked.jpg");
ImageIO.write(newImage, "jpg", newFile);
```
以上代码中,设置了透明度为0.5f,即半透明状态。可以根据需要修改透明度的值。
此外,还可以尝试使用JPEG格式来保存图片,因为JPEG格式会对图片进行压缩,从而减小文件大小。但是需要注意的是,JPEG格式会对图片进行有损压缩,可能会影响图片的清晰度。可以根据需求来选择保存格式。
阅读全文