JAVA给图片添加水印
package com.test; import org.junit.Test;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream; public class JunitImage {
@Test
public void testImage(){
markImageByText("hello world","D:/1.jpg","D:2.jpg",45,new Color(0,0,0),"JPG");
} /**
* 给图片添加水印文字、可设置水印文字的旋转角度
* @param logoText 要写入的文字
* @param srcImgPath 源图片路径
* @param newImagePath 新图片路径
* @param degree 旋转角度
* @param color 字体颜色
* @param formaName 图片后缀
*/
public static void markImageByText(String logoText, String srcImgPath,String newImagePath,Integer degree,Color color,String formaName) {
InputStream is = null;
OutputStream os = null;
try {
// 1、源图片
java.awt.Image srcImg = ImageIO.read(new File(srcImgPath));
BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null),srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB);
// 2、得到画笔对象
Graphics2D g = buffImg.createGraphics();
// 3、设置对线段的锯齿状边缘处理
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null), srcImg.getHeight(null), java.awt.Image.SCALE_SMOOTH), 0, 0, null);
// 4、设置水印旋转
if (null != degree) {
g.rotate(Math.toRadians(degree), buffImg.getWidth()/2,buffImg.getHeight() /2);
}
// 5、设置水印文字颜色
g.setColor(color);
// 6、设置水印文字Font
g.setFont(new java.awt.Font("宋体", java.awt.Font.BOLD, buffImg.getHeight() /2));
// 7、设置水印文字透明度
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 0.15f));
// 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y)
g.drawString(logoText, buffImg.getWidth()/2 , buffImg.getHeight()/2);
// 9、释放资源
g.dispose();
// 10、生成图片
os = new FileOutputStream(newImagePath);
ImageIO.write(buffImg, formaName, os);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (null != is)
is.close();
} catch (Exception e) {
e.printStackTrace();
}
try {
if (null != os)
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} }
JAVA给图片添加水印的更多相关文章
- Java实现图片添加水印
参考别人的感觉挺好玩,还没仔细研究,先上代码. package WaterMark; import javax.imageio.ImageIO; import java.awt.*; import j ...
- java实现给图片添加水印
package michael.io.image; import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.aw ...
- java.imageIo给图片添加水印
最近项目在做一个商城项目, 项目上的图片要添加水印①,添加图片水印;②:添加文字水印; 一下提供下个方法,希望大家可以用得着: package com.blogs.image; import java ...
- Java给图片和PDF文件添加水印(图片水印和文字水印)
有时候我们看到的图片或者PDF文件会自动加上水印.分为文字水印和图片水印. ----------------------------图片水印---------------------------- 1 ...
- Java 图片添加水印效果
package com.xiaowu.drawwater.demo; import java.awt.AlphaComposite; import java.awt.Graphics2D; impor ...
- java实现图片和pdf添加铺满文字水印
依赖jar包 <!-- pdf start --> <dependency> <groupId>com.itextpdf</groupId> <a ...
- Java中图片压缩处理
原文http://cuisuqiang.iteye.com/blog/2045855 整理文档,搜刮出一个Java做图片压缩的代码,稍微整理精简一下做下分享. 首先,要压缩的图片格式不能说动态图片,你 ...
- java获取图片原始尺寸
java获取图片原始尺寸 URL url = null; InputStream is = null; BufferedImage img = null; try { url = new URL(pi ...
- Android 图片添加水印图片或者文字
给图片添加水印的基本思路都是载入原图,添加文字或者载入水印图片,保存图片这三个部分 添加水印图片: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
随机推荐
- VGA图像显示组成模块分析
VGA图像显示组成模块分析 1.片上内存(FPGA RAM)充当存储器 2.静态内存(SRAM)充当存储器 3.将静态内存换为动态内存 动态内存容量大,但是即时能力不好,它无法立即响应VGA功能模块, ...
- 使用influxQL进行数据检索(说明)
非官方:InfluxDB 基本命令操作文档 原地址:https://docs.influxdata.com/influxdb/v1.6/query_language/data_exploration/ ...
- IO练习文件读取
import java.io.*; public class CheckFile { private File f ; private BufferedReader bdr; private char ...
- 解决nginx转发websocket报400错误
解决nginx转发websocket报400错误 说明 由于个人服务器上面有多个项目,配置了二级域名,需要对二级域名进行转发,在转发工作这快采取了大名鼎鼎的nginx.在这之前所有的项目运行转发都没问 ...
- git 查看提交的信息diff
git log --stat git show <hashcode> <filename> git log --pretty=oneline <filename> ...
- 查AIX 版本和系统参数
查AIX版本 atii:[/home/pmts]oslevel -s 7100-01-07-1316 即AIX 7.1版本atii:[/home/pmts]lsdev -C 查CPU个数 (逻辑数目) ...
- 【推荐】asp.net 页面的生命周期
当一个页面请求发送到WEB服务器时,不论该事件是由页面提交还是由页面重定向而激发的,页面在其被创建到释放的过程中都会运行一系列的事件.一个ASP.NET页面从被创建到释放的过程包含10个事件. (1) ...
- 学习笔记之Nearest-Neighbour Searching with PostGIS
PostgreSQL: Documentation: 10: 7.8. WITH Queries (Common Table Expressions) https://www.postgresql.o ...
- 无法启动程序,因为计算机中丢失mfc90ud.dll的解决方案
我的编程环境是vs2008-MFC,电脑系统是win7(64位) 解决方法:“工具”—>“选项”—>“项目和解决方案”—>“VC++目录”,在可执行文件栏中加上如下路径: $(Sys ...
- [转][C#]WebAPI 必需 Dll