一般图片打的水印都是固定宽高,这样会在原图尺寸过大或者过小的情况,打上去的水印太渺小,或者占去太多面积。因此比较好的方法是根据原图宽高,动态调整水印图尺寸,保持和原图大小相匹配,即你大我也大,你小我也小。

代码逻辑包含三点:

定一个水印尺寸比例。

根据原图宽高x比例,得到新的水印宽高。

根据新的水印宽高生成新的水印,再执行添加水印操作。

@Test

public void watermarkWidthHeight() throws IOException {

//读取原图,获取宽高

File file = new File("D:\\Test\\wKgeyV9V9EaAEswvAAbhnus5POc405.png");

BufferedImage image = ImageIO.read(file);

//读取水印图

URL waterUrl = this.getClass().getResource("/watermark.png");

BufferedImage waterImg = ImageIO.read(waterUrl);

double bl = 0.18;//水印为原图宽占比

//根据比例计算新的水印图宽高

int waterWidth = (int) (image.getWidth() * bl);

int waterHeight = waterWidth * waterImg.getHeight() / waterImg.getWidth();

waterImg = Thumbnails.of(waterImg).size(waterWidth, waterHeight)

.keepAspectRatio(false).asBufferedImage();

//使用新水印执行添加水印操作

Thumbnails.of(file).watermark(Positions.BOTTOM_RIGHT, bufferedImage, 1f)

.scale(1).toFile("D:\\Test\\" + System.currentTimeMillis());

}

java 图片自适应_水印宽高比例自适应图片(Java-Thumbnails)相关推荐

  1. java spring上传图片_基于Spring Boot实现图片上传/加水印一把梭操作

    文章共 537字,阅读大约需要 2分钟 ! 概述 很多网站的图片为了版权考虑都加有水印,尤其是那些图片类网站.自己正好最近和图片打交道比较多,因此就探索了一番基于 Spring Boot这把利器来实现 ...

  2. java 给图片添加暗水印_Java实现给图片添加水印

    使用Java给图片添加水印 根据需求给图片添加水印,直接上代码 /** * 给图片添加水印 */ public void addWaterMark() { Color color = new Colo ...

  3. Java给图片添加文字,水印,文件或者http图片地址,可消除文字锯齿

    记一次Java给图片添加水印方法 Java给图片在指定位置加水印的小工具, 可操作文件, 或者http地址图片,转base64或者直接输出都可 核心代码先贴出来 水印基本信息的一个封装 import ...

  4. Java BufferImage图片处理(获取宽高、图片截取、转换灰度图)

    Java BufferImage图片处理(获取宽高.截取.转换灰度图) 1. 效果图 2. 源码 参考 这篇博客将介绍如何使用Java读取图片为byte[]数组,或者BufferedImage及互相转 ...

  5. java 给图片添加暗水印_java 实现给图片添加水印

    原图如下: 代码如下: package test; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Fon ...

  6. ctf 改变图片高度_通过CRC32爆破修改图片的宽高 ctf-misc图片隐写

    ** 一.在处理图片隐写题的时候,可能会修改图片原有的宽高,导致图片里面的内容无法正常显示,那么怎么判断它的宽高是否被修改了呢? ** 1.把图片拖进010editor中会发现左下角提示CRC不匹配, ...

  7. 学会java要多久_多长时间可以学会Java?

    爱尚速成手册了解一下,时下流行速成,在这个it告诉发展的时代,程序员虽然被人吐槽了无数次,但是依然是个的饭碗,它高薪,工作环境好,市场环境好,就业率高.所以好多人咨询爱尚实训的小编,多久能学会Java ...

  8. java编写爬虫_手把手教你从零开始用Java写爬虫

    本文将手把手地教大家从零开始用Java写一个简单地爬虫! 目标 爬取全景网图片,并下载到本地 收获 通过本文,你将复习到:IDEA创建工程 IDEA导入jar包 爬虫的基本原理 Jsoup的基本使用 ...

  9. java俄罗斯方块视频_[VIP视频]【A0233】java面对对象编程-俄罗斯方块视频教程 高清视频 百度云 百度网...

    Java视频教程名称:java面对对象编程-俄罗斯方块视频教程  俄罗斯方块视频教程 $ X0 X1 Z: W4 P3 T  e. m3 q百度网盘下载链接: . M% x- I- V5 p( J 游 ...

  10. 公众号菜单 点击推送图片素材_微信公众平台常用图片素材分享(点击关注、阅读原文、分享朋友圈)...

    最近在学习做微信公众平台,收集了一些微信公众平台常用图片素材(无水印通用图片素材),特此分享给大家.长期更新-- 1.求关注图片素材,这个是放在文章最前面,用来求关注,引诱用户点击关注用的 点击上方蓝 ...

最新文章

  1. 线粒体|GetOrganelle组装软件
  2. 得到java异常printStackTrace的详细信息
  3. Aristochart – 灵活的 HTML5 Canvas 折线图
  4. 音视频开发(3)---ffmpeg
  5. hibernate中one-to-many实例一
  6. LibreELEC(kodi)安装 IPTV
  7. 抢票软件开发(二) 模拟登录
  8. Excel通过图片名插入图片
  9. 怎样修改edge默认浏览器
  10. 360度评估反馈实施的注意事项
  11. 邮件营销怎么做你知道吗?电子邮件营销平台注册流程
  12. suricata的netmap抓包模式安装
  13. Variable Selection via Nonconcave PenalizedLikelihood and its Oracle Properties 论文解析-特征选择的Oracle特性-1
  14. 软件测试基础:邮箱注册功能测试的测试点
  15. zzuli oj 1122 小明同学的调查作业
  16. Mysql数据库磁盘扩容
  17. 服务器测试之网卡bond测试
  18. 佳能Canon imageRUNNER ADVANCE DX C3725 一体机驱动
  19. CreateFile 函数详解
  20. Lucene中的同义词

热门文章

  1. python数据分析工具_python数据分析工具 | pandas
  2. matlab 6.5 vc6,MATLAB6.5 与 VC6.0混合编程中的 VC6.0的设置
  3. 在Web开发中完美控制IE标题栏
  4. QTP的那些事--weblist中相关的内容获取
  5. 汽车常用的ECU芯片
  6. 生成一定范围内的互不相同的随机数的方法比较
  7. Windows Phone 7 手机使用小记
  8. FusionCharts Free(2)
  9. Java项目部署到云服务器最简单的方法
  10. 一个简单漂亮的Java博客系统