JAVA给图片添加水印

public void mark(String srcImgPath, String outImgPath, Color markContentColor, String waterMarkContent,Integer degree) {
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);
//Font font = new Font("Courier New", Font.PLAIN, 12);
Font font = new Font("黑体", Font.BOLD, 50);
g.setColor(markContentColor); //根据图片的背景设置水印颜色
g.setFont(font);
// int x = srcImgWidth - getWatermarkLength(waterMarkContent, g) - 3;
//  int y = srcImgHeight - 3;
//设置文字在图片上居中
int x = (srcImgWidth - getWatermarkLength(waterMarkContent, g)) / 2;
int y = srcImgHeight / 2;
//设置水印旋转
if (null != degree) {
g.rotate(Math.toRadians(degree),
(double) bufImg.getWidth() / 2, (double) bufImg
.getHeight() / 2);
}
// 7、设置水印文字透明度
float alpha = 0.8f; // 透明度;1.0f为不透明
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,alpha));
//第一参数->水印的内容,后面两个参数->文字在图片上的坐标位置(x,y)
g.drawString(waterMarkContent,x, y);
//释放资源
g.dispose();
// 输出图片
FileOutputStream outImgStream = new FileOutputStream(outImgPath);
ImageIO.write(bufImg, "jpg", outImgStream);
outImgStream.flush();
outImgStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public int getWatermarkLength(String waterMarkContent, Graphics2D g) {
return g.getFontMetrics(g.getFont()).charsWidth(waterMarkContent.toCharArray(), 0, waterMarkContent.length());
}
时间: 2024-08-27 11:10:50

JAVA给图片添加水印的相关文章

java为图片添加水印

添加水印的Demo如下,新建工程测试后如遇到问题,可以执行最后图片指示更改即可. import java.awt.AlphaComposite;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.FileOutputStrea

java 实现给图片添加水印

原图如下: 代码如下: package test; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.RenderingHints; import java.awt.image.BufferedImage; i

java 给图片和动图添加水印

这两天根据需求在做图片上传添加水印,实话说重来不知道java还可以这样操作,既然有个这要求我就去找资料研究了一番,现在把它分享一下,希望能帮到有需要的兄弟. 给普通图片添加水印和给动图添加水印是不一样的,给普通图片添加水印用的是java自带的方法写的,给动图使用了gif4j框架,这个框架在CSDN里面很多可以下载,建议下载破解版的,因为原来的jar包会有自带的一个水印是去不了的. import java.awt.*; import java.awt.image.BufferedImage; im

java给图片添加图片水印,设置样式平铺,拉伸

import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class ImageUtil { /** * 给图片添加水印 * @param originImgPath 原始图片的路径 * @param targetImgPath 添加水印后图片的保存路径 * @param

关于opencv对图片添加水印

有一段时间没有写博客了,最近因为自己需要给图片添加水印,就写了个简单的图片添加水印 python:3.6.7 pycharm opencv是一个开源的库,是有C++编写,支持C ++,Python,Java和MATLAB接口,并支持Windows,Linux,  Android  和Mac OS倾向于视觉应用. 本次使用的python 首先安装opencv模块,pip install opencv-python 国外的网络下载通常比较慢所以此处还有一个国内的下载地址 pip install op

Java实现图片裁剪预览功能

Java实现图片裁剪预览功能 在项目中,我们需要做些类似头像上传,图片裁剪的功能,ok看下面文章! 需要插件:jQuery Jcrop 后端代码: package org.csg.upload; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import 

Android 图片添加水印图片或者文字

给图片添加水印的基本思路都是载入原图,添加文字或者载入水印图片,保存图片这三个部分 添加水印图片: private Bitmap createWaterMaskImage(Context gContext, Bitmap src, Bitmap watermark) { String tag = "createBitmap"; Log.d(tag, "create a new bitmap"); if (src == null) { return null; } i

Java 实现图片等比例缩略图 (Thumbnailator + Jsp+SpringMVC)

Web应用为上传图片生成缩略图是常见的基本功能,通过缩略图生成提高了信息浏览时的性能,在保证用户使用体验的同时减少了数据传输量.本次以实例的方式,讲解如何使用使用Java实现图片等比例缩略图生成功能. 效果查看 代码编写 Thumbnailator 是一个为Java界面更流畅的缩略图生成库.从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,且允许微调缩略图生成,同时保持了需要写入到最低限度的代码量. 1.导入相关的包 2.配置web.xml we

iOS边练边学--(Quartz2D)图片添加水印

一.给图片添加水印的基本步骤 加载图片 手动创建位图上下文 绘制原生的图片 给原生的图片添加文字 生成一张图片给我们,从上下文中获取图片 关闭上下文 二.注意:位图上下文的获取方式跟layer上下文不一样.位图上下文需要我们手动创建 三.效果图