Java图片加文字水印

Java图片加文字水印

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream; import javax.imageio.ImageIO; import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder; /**
* 图片加文字水印
* @author InJavaWeTrust
*
*/
public class Watermark { /**
* 图片加文字水印
* @param text 文字
* @param targetImg 目标图片
* @param fontName 字体名
* @param fontStyle 字体样式
* @param color 字体颜色
* @param fontSize 字体大小
* @param x 文字x坐标
* @param y 文字y坐标
*/
public static void watermark(String text, String targetImg,
String fontName, int fontStyle, Color color, int fontSize, int x,
int y) {
try {
File _file = new File(targetImg);
Image src = ImageIO.read(_file);
int wideth = src.getWidth(null);
int height = src.getHeight(null);
BufferedImage image = new BufferedImage(wideth, height,
BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
g.drawImage(src, 0, 0, wideth, height, null); g.setColor(color);
g.setFont(new Font(fontName, fontStyle, fontSize)); g.drawString(text, wideth - fontSize - x, height - fontSize
/ 2 - y);
g.dispose();
FileOutputStream out = new FileOutputStream(targetImg);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
} catch (Exception e) {
System.out.println(e);
}
} public static void main(String[] args) {
String text = "http://injavawetrust.iteye.com";
String targetImg = "C:\\Users\\admin\\Desktop\\ch\\state.png";
watermark(text, targetImg, null, Font.BOLD, Color.RED, 20, 240, 10);
} }
上一篇:一道关于数据库(经典父子级 ID 关联)更新题,大家帮忙想想还有其它解决思路没有?


下一篇:Android给图片加文字和图片水印