您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
1024 发布于2020年10月23日 15:12 最近更新于 2020年10月26日 16:54

原创 Java 水印图片宽高比例自适应

4628 次浏览 读完需要≈ 3 分钟 Java

内容目录

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

代码逻辑包含三点:

  1. 定一个水印尺寸比例。
  2. 根据原图宽高x比例,得到新的水印宽高。
  3. 根据新的水印宽高生成新的水印,再执行添加水印操作。
    @Test
    public void watermarkWidthHeight() throws IOException {
        double bl = 0.18;//水印为原图宽高比例
        //读取原图,获取宽高
        File file = new File("D:\\Test\\wKgeyV9V9EaAEswvAAbhnus5POc405.png");
        BufferedImage image = ImageIO.read(file);
        //根据比例计算新的水印图宽高
        int width = (int) (image.getWidth() * bl);
        int height = width * image.getHeight() / image.getWidth();
        //读取水印图
        URL url = FileUnitTest.class.getResource("/watermark.png");
        //生成新的水印图
        BufferedImage bufferedImage = Thumbnails.of(url).size(width,height)
                .keepAspectRatio(false).asBufferedImage();
        //使用新水印执行添加水印操作
        Thumbnails.of(file).watermark(Positions.BOTTOM_RIGHT, bufferedImage, 1f)
                .scale(1).toFile("D:\\Test\\" + System.currentTimeMillis());
    }
  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

1 条评论

二周 · 4年前

用的什么库呀,自己实现的吗

0 0 0

撰写评论