Java代码实现水印图片制作
需求:制作商品的促销水印
1、图片处理工具类ImageUtils
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;public class ImageUtils {/*** @param file 源文件(图片)* @param waterFile 水印文件(图片)* @param x 距离右下角的X偏移量* @param y 距离右下角的Y偏移量* @param alpha 透明度, 选择值从0.0~1.0: 完全透明~完全不透明* @return BufferedImage* @throws IOException* @Title: 构造图片* @Description: 生成水印并返回java.awt.image.BufferedImage*/public static BufferedImage watermark(File file, File waterFile, int x, int y, float alpha) throws IOException {// 获取底图BufferedImage buffImg = ImageIO.read(file);// 获取层图BufferedImage waterImg = ImageIO.read(waterFile);// 创建Graphics2D对象,用在底图对象上绘图Graphics2D g2d = buffImg.createGraphics();// 获取层图的宽度int waterImgWidth = waterImg.getWidth();// 获取层图的高度int waterImgHeight = waterImg.getHeight();// 在图形和图像中实现混合和透明效果g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha));// 绘制g2d.drawImage(waterImg, x, y, waterImgWidth, waterImgHeight, null);// 释放图形上下文使用的系统资源g2d.dispose();return buffImg;}/*** 输出水印图片** @param buffImg 图像加水印之后的BufferedImage对象* @param savePath 图像加水印之后的保存路径*/public static void generateWaterFile(BufferedImage buffImg, String savePath) {int temp = savePath.lastIndexOf(".") + 1;try {ImageIO.write(buffImg, savePath.substring(temp), new File(savePath));} catch (IOException e1) {e1.printStackTrace();}}
}
2、图片叠加主函数ImageDemo
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;public class ImageDemo {public static void main(String[] args) throws IOException {//源文件图片路径String sourceImage = "E:\\My Files\\MacBook.jpg";//水印图片路径String waterImage = "E:\\My Files\\AppleWatch.jpg";//生成图片路径String savePath = "E:\\My Files\\perfect.jpg";BufferedImage image = ImageUtils.watermark(new File(sourceImage),new File(waterImage),180,150,0.6f);ImageUtils.generateWaterFile(image,savePath);}
}
3、结果
Java代码实现水印图片制作相关推荐
- 【iText5 生成PDF】纯Java代码实现生成PDF(自定义表格、文本水印、单元格样式)
工作中遇到需要生成PDF.最终选择了iText.其他也有通过html再生成.感觉不太适合就用了代码实现. 使用iText 5.5.13.1版本.纯Java代码实现 1.自定义表格合并指定行列完成数据填 ...
- java 多文字水印_Java 如何给Word文档添加多行文字水印
前言html 我在以往的文章中曾介绍过如何给Word文档添加文本水印和图片水印,及怎样删除文档中的水印.关于文本水印,以前那篇教程里主要指的是单行字体的水印,而在操做Word文档时,有时也会碰到须要添 ...
- linux加水印乱码,linux java程序加水印及中文乱码方案(二)
上一篇介绍了在linux, centos图片加水印出现乱码的解决方案,<linux java程序加水印及中文乱码方案>, 在真实项目环境下,一是部署在虚拟机服务器,还有项目部署在docke ...
- Java实现图片水印文字换行、平铺、旋转效果
Java代码实现对图片的水印文字的添加. 水印的效果是:水印文字的换行.水印文字的平铺.水印文字的旋转. import java.awt.Color; import java.awt.Font; im ...
- 【Java 代码实例 13】Java操作pdf的工具类itext
目录 一.什么是iText? 二.引入jar 1.项目要使用iText,必须引入jar包 2.输出中文,还要引入下面```itext-asian.jar```包 3.设置pdf文件密码,还要引入下面` ...
- 【项目实战】Java代码反编译工具的使用 以及 如何对Java代码进行混淆?
一.背景 现在交付给客户的代码,虽然不是以源码的形式交付,但是还经常会需要进行反编译,如何更好的做到反编译呢?本文探讨的是如何进行反编译的方法. 二. Java代码反编译工具的使用 (1)使用jad ...
- 使用java代码给视频添加水印
使用java代码给视频添加水印 步骤一:下载相关依赖包: 相关地址:ffmpeg 步骤二:下载ffmpeg依赖软件 相关地址:点击下载 步骤三:直接上代码 类一:FFMPEG package cn.o ...
- 如何使用JAVA代码将WORD转成PDF.
如何使用JAVA代码将WORD转成PDF. 引入jar包 <!-- 转换doc为pdf的组件 --><dependency><groupId>e-iceblue&l ...
- 编写高性能Java代码的最佳实践
编写高性能Java代码的最佳实践 摘要:本文首先介绍了负载测试.基于APM工具的应用程序和服务器监控,随后介绍了编写高性能Java代码的一些最佳实践.最后研究了JVM特定的调优技巧.数据库端的优化和架 ...
最新文章
- 网络安全与机器学习(二):网络安全任务如何结合机器学习?
- 深造率超70%!这所顶尖大学毕业生:不读研怎么找工作?
- NSOperation下载网络图片(四)
- Oracle分页查询2
- UA MATH524 复变函数2 指数、对数与三角函数
- Spring OXM-XStream使用别名
- mysql+where+且,MySQL WHERE
- Adobe Acrobat Reader 快捷键
- linux的文件link占用空间的差别,Linux重要知识点汇总——磁盘与文件系统管理
- winform中键盘和鼠标事件的捕捉和重写(转)
- 六、MySQL DML数据操纵语言学习笔记(插入、修改、删除详解 + 强化复习)
- macOS Big Sur11.2发布候选版更新:修复蓝牙和显示连接问题
- jQuery关于复制(复制隐藏文字+显示文字)跳转,Clipboard
- C语言中数组变量和指针变量
- 第一次面试且失败的经历
- Kafka 学习笔记(二) :初探 Kafka
- QGC使用国内天地图卫星图并添加注记图层
- 单目标跟踪(模板更新)(UpdateNet)《Learning the Model Update for Siamese Trackers》
- LSF集群基本概念介绍
- 【科普】准大一新生如何挑选笔记本电脑