Java图片加水印

本文详细介绍了如何使用Java编程实现为图片添加水印的功能,包括选择合适的库、设置水印文字、调整位置和透明度等关键步骤,旨在帮助开发者实现图片处理需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值