JAVA之图片水印核心代码
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;
public class WaterMarkUtils {
/**
* @param srcImgPath 源图片路径
* @param tarImgPath 保存的图片路径
* @param waterMarkContent 水印内容
* @param markContentColor 水印颜色
* @param font 水印字体
*/
public void addWaterMark(String srcImgPath, String tarImgPath, String waterMarkContent,Color markContentColor,Font font) {
try {
// 读取原图片信息
File srcImgFile = new File(srcImgPath);//得到文件
Image srcImg = ImageIO.read(srcImgFile);//文件转化为图片
int srcImgWidth = srcImg.getWidth(null);//获取图片的宽
int srcImgHeight = srcImg.getHeight(null);//获取图片的高
// 加水印
BufferedImage bufImg = new BufferedImage(srcImgWidth, srcImgHeight, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bufImg.createGraphics();
g.drawImage(srcImg, 0, 0, srcImgWidth, srcImgHeight, null);
g.setColor(markContentColor); //根据图片的背景设置水印颜色
g.setFont(font); //设置字体
//设置水印的坐标
int x = srcImgWidth - 1*getWatermarkLength(waterMarkContent, g);
int y = srcImgHeight - 1*getWatermarkLength(waterMarkContent, g);
g.drawString(waterMarkContent, x, y); //画出水印
g.dispose();
// 输出图片
FileOutputStream outImgStream = new FileOutputStream(tarImgPath);
ImageIO.write(bufImg, "jpg", outImgStream);
System.out.println("添加水印完成");
outImgStream.flush();
outImgStream.close();
} catch (Exception e) {
// TODO: handle exception
}
}
public int getWatermarkLength(String waterMarkContent, Graphics2D g) {
return g.getFontMetrics(g.getFont()).charsWidth(waterMarkContent.toCharArray(), 0, waterMarkContent.length());
}
public static void main(String[] args) {
Font font = new Font("微软雅黑", Font.BOLD, 60); //水印字体
String srcImgPath="c:/tmp/20150314_124204.jpg"; //源图片地址
String tarImgPath="c:/tmp/t.jpg"; //待存储的地址
String waterMarkContent="图片来源:北华航天工业学院<http://www.nciae.edu.cn/>"; //水印内容
Color color=new Color(255,0,0); //水印图片色彩以及透明度
new WaterMarkUtils().addWaterMark(srcImgPath, tarImgPath, waterMarkContent, color,font);
}
}
效果验证
原图
水印图
相关推荐
利用java将图片加上水印 只需要设置图片属性就行了·
利用java的Graphics2D进行图片的水印处理
struts2 上传 java 图片水印 改变图片大小
java 图片添加水印 图片叠加文字类 图片生成方法,如果需要在已有的图片叠加文字
java给图片添加水印,网站开发过程中可能需要对上传的图片添加属于本网站的水印,这是一个工具类,能实现添加文字水印和添加图片水印。
大哥 还是大姐不要再删了 我要崩溃了 我上传的资源就是有关于javaja操作wordpdf图片生成图片水印的 一些相关资料而已
是一 使 用 java 来 实现图片水印的效果
java 水印(水印适应图片大小,但个别图片太小不支持)
基于Java给图片添加文字或图片水印 大学生课程设计 基于Java的课程设计 自己大二写的课程设计
JAVA实现给图片增加图片水印或者文字水印相关依赖包。
java Jacob完美实现word添加图片水印(内附源码及jar包)。 公司最近让搞Word文档添加水印,所有下载的文档需要添加公司印章,搞了好多天才实现,利用Jacob完美实现word添加图片水印(注意需要把dll文件放到jdk的bin...
水印 java Graphics2D实现文字图片水印 实现水印四个角水印
java 制作图片水印代码 图片水印 水印
Java图片附加图片水印和文字水印,以及水印透明度,偏移度设置。
JAVA处理图片 加文字水印以及灰色透明背景,处理图片。
分享:Java生成文字水印或图片水印
开发一个项目,需要用到图片加水印的功能,这里考虑使用后台加水印,在上传的时候或者回显到页面时候,取图片文件的流数据,进行加水印在返回流数据就行了,非常简单,不懂可以问我
java图片添加水印帮助类,在图片上加文字水印、加图片水印!
java操作excel实现水印图片
Java为图片添加水印功能,这个水印类的操作比较实用,不但可以旋转水印图像,还可设置其水印图片的透明度,使其与原图融为一体,给图片添加水印,可以设置图片水印的角度,设置对线段的锯齿状边缘处理,第一参数->...