Java图片加水印
来源:程序员人生 发布时间:2014-12-11 08:36:00 阅读次数:3897次
code
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 com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import javax.imageio.ImageIO;
public class WaterMark{
public static void pressImage(String dst,String src,int x,int y){
try{
File f=new File(src);
Image img=ImageIO.read(f);
int w=img.getWidth(null);
int h=img.getHeight(null);
BufferedImage bimg=new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics g=bimg.getGraphics();
g.drawImage(img, 0, 0, w, h, null);
File f1=new File(dst);
Image img1=ImageIO.read(f1);
int w1=img1.getWidth(null);
int h1=img1.getHeight(null);
g.drawImage(img1, w-w1-x, h-h1-y, w1, h1, null);
g.dispose();
FileOutputStream out=new FileOutputStream(dst);
JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);
encoder.encode(bimg);
out.close();
}catch(Exception e){
e.printStackTrace();
}
}
public static void pressText(String pressText, String targetImg,String fontName,
int fontStyle,int color,int fontSize,int x,int y){
try{
File f=new File(targetImg);
Image img=ImageIO.read(f);
int w=img.getWidth(null);
int h=img.getHeight(null);
BufferedImage bimg=new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
Graphics g=bimg.getGraphics();
g.drawImage(img, 0, 0, w, h, null);
g.setFont(new Font(fontName,fontStyle,fontSize));
g.drawString(pressText, w-fontSize-x, h-fontSize/2-y);
g.dispose();
FileOutputStream out=new FileOutputStream(targetImg);
JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);
encoder.encode(bimg);
out.close();
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args){
pressImage("1.jpg","2.jpg",200,200);
pressText("真的好想你","3.jpg","宋体",Font.BOLD,0,20,200,200);
}
}
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠