zoukankan      html  css  js  c++  java
  • 水印宽高比例自适应图片(Java-Thumbnails)

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

    代码逻辑包含三点:

    1. 定一个水印尺寸比例。
    2. 根据原图宽高x比例,得到新的水印宽高。
    3. 根据新的水印宽高生成新的水印,再执行添加水印操作。
        @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());
        }
    
  • 相关阅读:
    pandas数据处理攻略
    红黑树
    调用高德地图API(热力图)详解
    python文件操作细节
    mysql windows安装资源
    机器学习数据集资源
    python3.6+linux服务器+django1.11连接MYSQL数据库
    django2.0+linux服务器 ,如何让自己电脑访问
    Python笔记
    深度学习之无监督训练
  • 原文地址:https://www.cnblogs.com/xiaona/p/13864250.html
Copyright © 2011-2022 走看看