您现在的位置:首页 >> 基础 >> Java网络编程 >> 内容

Java制作水印图片源码

时间:2014-12-21 16:42:26

  核心提示:import java.awt.AlphaComposite;import java.awt.Color;import java.awt.Graphics2D;import java.awt.Imag...

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("===Java中文网:http://www.javaweb.cc/ 生成成功===");
return true;
}
 Java免费学习   Java自学网  
http://www.javalearns.com

作者:不详 来源:网络
    你是从哪里知道本网站的?
  • 网友介绍的
  • 百度搜索的
  • Google搜索的
  • 其它搜索过来的
  • 网址输错了进来的
  • 太忙了不记得了
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • java学习网(www.javalearns.com) © 2014 版权所有 All Rights Reserved.
  • Email:javalearns@163.com 站长QQ:1356121699 晋ICP备14003680号-3
  • java学习网部分内容来自网络或网友发布,如侵犯了您利益,请发邮件至:javalearns@126.com,我们尽快处理!
  • Java学习网
  • 网站统计
  • 晋公网安备 14042902000001号