1. 程式人生 > >java為圖片添加水印

java為圖片添加水印

red eat wim static 水印 圖片保存 images col port

添加水印的Demo如下,新建工程測試後如遇到問題,可以執行最後圖片指示更改即可。

import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import javax.imageio.ImageIO;

public class Demo {

public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("D://img/1.jpg");
textmark(file,"HELLO WORLD");
}

/**
* @param file
* 圖片文件對象
* @param text
* 添加的水印文字
*/
public static void textmark(File file, String text) {
try {
Image image = ImageIO.read(file);

BufferedImage bufferImage = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_RGB);// 1.創建圖片緩存對象

Graphics2D g = bufferImage.createGraphics(); // 2. 創建Java繪圖工具對象

g.drawImage(image, 0, 0, image.getWidth(null), image.getHeight(null), null);//3.將原圖通過繪圖工具畫到圖片緩存對象中

g.setFont(new Font("微軟雅黑",Font.BOLD,30));
g.setColor(Color.GREEN);//設置水印文字的 字體和顏色
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.3f));

g.drawString(text, 200, 50);//4.將文字添加到緩存圖片對象中
g.dispose();

OutputStream os = new FileOutputStream("D://new.jpg");
ImageIO.write(bufferImage, "JPG", os);//通過圖片編碼工具,將緩存圖片保存到本地

} catch (IOException e) {
e.printStackTrace();
}
}

}

報錯主要為import javax.imageio.ImageIO;引入錯誤

技術分享

java為圖片添加水印