首页 > 代码库 > Java图片加水印

Java图片加水印

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);
	}
}


Java图片加水印