今天看到的文章,工作以后可能也会用到,学习和分享这段代码!
项目中考虑到添加图片版权的保护,特意看了下水印的处理...有以下方式:
package com.xms.partise;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.FileOutputStream;
import javax.swing.ImageIcon;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
/**
* 给图片增加水印
* @param filePath
* 需要添加水印的图片的路径
* @param markContent
* 水印的文字
* @param markContentColor
* 水印文字的颜色
* @param qualNum
* 图片质量
*
*
*/
public class WaterSet {
public boolean createMark(String filePath,String markContent,Color markContentColor,float qualNum){
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);
g.drawString(markContent,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;
}
}