Java 给图片上水印

package com.able.demo;
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;
public class ImageUtils {
 /**
  * 给图片上水印
  * @param args
  */
 public ImageUtils() {
 } 
 /** 
 * 把图片印刷到图片上 
 * @param pressImg -- 水印文件 
 * @param targetImg -- 目标文件 
 * @param x 
 * @param y 
 */ 
 public final static void pressImage(String pressImg, String targetImg, 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);
 // 水印文件 
 File _filebiao = new File(pressImg); 
 Image src_biao = ImageIO.read(_filebiao); 
 int wideth_biao = src_biao.getWidth(null); 
 int height_biao = src_biao.getHeight(null); 
 g.drawImage(src_biao, wideth - wideth_biao - x, height - height_biao -y, wideth_biao, 
 height_biao, null); 
 // / 
 g.dispose(); 
 FileOutputStream out = new FileOutputStream(targetImg); 
 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); 
 encoder.encode(image); 
 out.close(); 
 System.out.println("水印图片生成成功!");
 } catch (Exception e) { 
 e.printStackTrace(); 
 } 
 }
 /** 
 * 打印文字水印图片 
 * @param pressText --文字 
 * @param targetImg -- 目标图片 
 * @param fontName -- 字体名 
 * @param fontStyle -- 字体样式 
 * @param color -- 字体颜色 
 * @param fontSize -- 字体大小 
 * @param x -- 偏移量 
 * @param y 
 */
 public static void pressText(String pressText, String targetImg, String fontName,int fontStyle, int 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.RED); 
 g.setFont(new Font(fontName, fontStyle, fontSize));

 g.drawString(pressText, wideth - fontSize - x, height - fontSize/2 - y); 
 g.dispose(); 
 FileOutputStream out = new FileOutputStream(targetImg); 
 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); 
 encoder.encode(image); 
 out.close(); 
 System.out.println("水印图片生成成功!");
 } catch (Exception e) { 
 System.out.println(e); 
 } 
 } 
 public static void main(String[] args) {
  pressImage("E:/shuiyin.bmp", "E:/mubiaotupian.jpg", 110, 120);
 }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值