Java制作水印图片源码
以下为引用的内容:
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
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;
/**
* <style type="text/css">body{background:#C7EDCC;}</style>
* 在图片上添加水印图片或水印文字
* @param filePath 原始图片路径
* @param watermarkPath 水印图片路径
* @param watermarkX 水印位置:x
* @param watermarkY 水印位置:y
* @param watermarkAlpha 透明度
* @return
*/
public static boolean createMark(String filePath, String watermarkPath,int watermarkX, int watermarkY,float watermarkAlpha) {
// 读取原图片
ImageIcon imgIcon = new ImageIcon(filePath);
Image theImg = imgIcon.getImage();
// 读取标签图片
ImageIcon waterIcon = new ImageIcon(watermarkPath);
Image waterImg = waterIcon.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();
// bimage = g.getDeviceConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);
// g.dispose();
// g = bimage.createGraphics();
// 设置字体
//Font font = new Font("SansSerif", Font.BOLD, 30);
//g.setFont(font);
// 设置前景色
//g.setColor(Color.red);
// 设置背景色
g.setBackground(Color.white);
// 画原图
g.drawImage(theImg, 0, 0, null);
//值从0f-1.0f
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, watermarkAlpha));
// 画出水印图
g.drawImage(waterImg,watermarkX,watermarkY, waterImg.getWidth(null), waterImg.getHeight(null), null);
// 画字
//g.drawString("制作水印", 50, 50);
//透明度设置 结束
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
g.dispose();
FileOutputStream out = null;
try {
String newWaterFile = filePath.substring(0,filePath.lastIndexOf("."))+"_water."+filePath.substring(filePath.lastIndexOf(".")+1);
out = new FileOutputStream(newWaterFile);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bimage);
param.setQuality(50f, true);
encoder.encode(bimage, param);
} catch (Exception e) {
System.out.println("---生成失败---");
return false;
} finally {
if (out != null) {
try {
out.close();
out = null;
} catch (Exception e) {
}
}
}
System.out.println("===站长家园:http://www.jz123..cn/ 生成成功===");
return true;
}