Java图片加水印
- - CSDN博客推荐文章pressText("真的好想你","3.jpg","宋体",Font.BOLD,0,20,200,200);. 作者:cjc211322 发表于2014-12-4 8:35:45 原文链接. 阅读:59 评论:0 查看评论.
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); } }