Java 图像压缩库thumbnailator压缩图片未生效问题

前言

thumbnailator是一个java的缩略图生成库,不仅能生成缩略图,还能对图片进行裁剪、打水印、旋转、缩放等等。依赖如下:

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

问题描述

在使用该库进行图片压缩的时候,首先进行了测试:

        Thumbnails.of("D:/data/a.jpg")
                .outputQuality(0.5)
                .size(1920, 1080)
                .keepAspectRatio(true)
                .toFile("D:/data/333.jpg");

通过上述测试发现图片大小确实压缩到了50%左右。于是用于了实际的开发中

BufferedImage image = Thumbnails.of(image)
                        .size(imageWidth, imageHeight)
                        //保持长宽比
                        .keepAspectRatio(true)
                        //输出图片的质量(压缩率)
                        .outputQuality(imageQuality)
                        //图片格式
                        .outputFormat("JPEG")
                        ..asBufferedImage();

将上述image对象保存到MongoDB中时发现图片并没有被压缩,还是保持原大小。

解决方案

为了解决这个问题,去官方文档找了一下,发现了下面绿色框中的话,大概意思是说图片压缩和asBufferedImage/asBufferedImages两个方法有冲突,如果处理以后最终是以这两个方法输出会导致图片压缩不生效。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装LZS和Hadoop的LZO压缩算法可以按照以下步骤进行: 1. 下载LZS和Hadoop的LZO压缩算法。 可以从以下网址下载对应版本的LZS和Hadoop的LZO压缩算法: - LZS:http://www.lzsupdates.com/download/lzs-1.6.tar.gz - Hadoop的LZO压缩算法:https://github.com/ning/jvm-compressor-snappy/releases/download/v0.1.0-native-hadoop1.0.4.1/libhadoop-gpl-compression-0.1.0-native-1.0.4.1.jar 2. 安装LZS。 解压下载的LZS文件,并按照以下步骤进行安装: ```bash tar -zxvf lzs-1.6.tar.gz cd lzs-1.6 ./configure make make install ``` 安装完成后,可以使用以下命令检查是否安装成功: ```bash lzs --version ``` 3. 安装Hadoop的LZO压缩算法。 将下载的`libhadoop-gpl-compression-0.1.0-native-1.0.4.1.jar`文件复制到Hadoop的`lib`目录下: ```bash cp libhadoop-gpl-compression-0.1.0-native-1.0.4.1.jar $HADOOP_HOME/lib/ ``` 然后,需要在Hadoop的配置文件中添加以下配置: ``` io.compression.codecs org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.SnappyCodec,com.hadoop.compression.lzo.LzoCodec io.compression.codec.lzo com.hadoop.compression.lzo.LzoCodec ``` 配置完成后,重启Hadoop集群,以确保配置生效。 注意:如果您使用的是CDH、HDP等Hadoop发行版,则可以跳过以上步骤,因为这些发行版已经默认包含了LZO压缩算法。 安装完成后,您就可以在Java的Spark程序中使用LZS压缩算法了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值