Java给照片加水印

import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.swing.*;
import com.sun.image.codec.jpeg.*;
import java.text.AttributedString;
import java.awt.font.TextAttribute;
import java.text.AttributedCharacterIterator;

 
public class WaterMark {
    /**
      * 给图片添加水印
     * @param filePath 需要添加水印的图片的路径
     * @param markContent 水印的文字
     * @param markContentColor 水印文字的颜色
     * @param qualNum 图片质量
     * @param fontType 字体
     * @param fontsize 字体大小
     * @return
     * @author zhongweihai newwei2001@yahoo.com.cn
     */
    public boolean createMark(String filePath,String markContent,Color markContentColor,float qualNum,
                              String fontType,int fontSize) 
    { 
        ImageIcon imgIcon=new ImageIcon(filePath); 
        Image theImg =imgIcon.getImage(); 
        int width=theImg.getWidth(null); 
        int height= theImg.getHeight(null); 
        BufferedImage bimage = new BufferedImage(width,height, BufferedImage.TYPE_INT_RGB); 
        Graphics2D g=bimage.createGraphics();
        g.setColor(markContentColor); 
        g.setBackground(Color.white); 
        g.drawImage(theImg, 0, 0, null ); 
        AttributedString ats = new AttributedString(markContent);
        Font f = new Font(fontType,Font.BOLD, fontSize);
        ats.addAttribute(TextAttribute.FONT, f, 0, 18);
        AttributedCharacterIterator iter = ats.getIterator();

        g.drawString(iter,width/5,height/5); //添加水印的文字和设置水印文字出现的内容 
        g.dispose(); 
        
        try{ 
        FileOutputStream out=new FileOutputStream(filePath); 
        JPEGImageEncoder encoder =JPEGCodec.createJPEGEncoder(out); 
        JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage); 
        param.setQuality(qualNum, true); 
        encoder.encode(bimage, param); 
        out.close(); 
        }catch(Exception e)
        { return false; } 
        return true; 
    } 
    
    public static void main(String[] args)
    {
     WaterMark wm = new WaterMark();
     wm.createMark("d://1.jpg","newwei2001@yahoo.com.cn",Color.ORANGE,70f,"宋体",100);
 
     }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值