暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

java框架thumbnailator操作图片

干货食堂 2023-05-30
450

非常牛逼的一个开源图片框架

    <dependency>
    <groupId>net.coobird</groupId>
    <artifactId>thumbnailator</artifactId>
    <version>0.4.8</version>
    </dependency>

    设置图片大小

    注意:这个是批量的场景,也就是说你指定的是一个文件夹,他会将里面所有的图片都处理一下,所以生成的文件名不能随便自定义,只能在原来的基础上加上前缀。

      Thumbnails.of(new File("C:\\Users\\65708\\Desktop\\test").listFiles())
      .size(640, 480)
      .outputFormat("png")
      .toFiles(Rename.PREFIX_DOT_THUMBNAIL);


      设置图片旋转

        for (int i : new int[] {0, 90, 180, 270, 45}) {
        Thumbnails.of(new File("coobird.png"))
        .size(100, 100)
        .rotate(i)
        .toFile(new File("image-rotated-" + i + ".png"));
        }


        创建一个带有旋转和水印的缩略图

          Thumbnails.of(new File("original.jpg"))
          .size(160, 160) //图片大小
          .rotate(90) // 旋转
          .watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File("watermark.png")), 0.5f) // 水印
          .outputQuality(0.8) // 压缩质量
          .toFile(new File("image-with-watermark.jpg"));


          在这个例子中,原始jpg的图像被调整大小,然后顺时钟旋转 90 度,然后水印被放置在右下角,这是半透明的,然后被保存到 image-with-watermark.jpg 与 80% 压缩质量设置。


          创建一个缩略图并写入一个输出流

            OutputStream os = ...;

            Thumbnails.of("large-picture.jpg")
            .size(200, 200)
            .outputFormat("png")
            .toOutputStream(os);


            按给定因子对图像进行缩放

              BufferedImage originalImage = ImageIO.read(new File("original.png"));


              BufferedImage thumbnail = Thumbnails.of(originalImage)
              .scale(0.25)
              .asBufferedImage();


              向特定目录写入缩略图

              假如 原图是  1080*1440 ,设置成 200*200的话,则最终是  150*200。因为是等比例缩放的, 

                File destinationDir = new File("path/to/output");


                Thumbnails.of("apple.jpg", "banana.jpg", "cherry.jpg")
                .size(200, 200)
                .toFiles(destinationDir, Rename.PREFIX_DOT_THUMBNAIL);



                java正则匹配group

                java输入输出交互

                Object和Map转换

                java获取项目相关信息

                分享一下我的种植牙

                文章转载自干货食堂,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论