1、我这里使用的是Thumbnailator,一个google使用的开源的工具类。


2、在github上面的地址是:https://github.com/coobird/thumbnailator

maven的地址

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

3、我的应用场景是要将一个图片的字节数组进行压缩,并且返回字节数组,如果是图片文件的压缩可以参考如下帖子
https://www.cnblogs.com/linkstar/p/7412012.html




4、java代码示例:
    public static void main(String[] args) {
        byte[] bs = null;
        try {
            bs = HttpCaller.get(
                    "https://www.baidu.com/img/baidu_jgylogo3.gif",
                    null);
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        ByteArrayInputStream intputStream = new ByteArrayInputStream(bs);
        Builder<? extends InputStream> builder = Thumbnails.of(intputStream).size(20, 30);
        try {
            BufferedImage bufferedImage = builder.asBufferedImage();
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            ImageIO.write(bufferedImage, "png", baos);
            byte[] byteArray = baos.toByteArray();
            System.out.println(Base64Utils.encodeToString(byteArray));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }


Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐