引入依赖

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

举例,将一张1280乘720 的图片压缩成指定的500乘500的图片

    /*** 这种写法会按照指定大小和比例进行缩放* * @throws IOException*/
Thumbnails.of("粉色长方体.jpg").size(500, 500).toFile("nmnjrbi7vfld3fat53hw.jpg");

效果,会按指定大小自适应比例缩放,图片无明显变形

     /*** 紧按照指定大小进行缩放* * @throws IOException*/private void compressedPic() throws IOException {/*** keepAspectRatio(false) 默认是按照比例缩放的*/Thumbnails.of("粉色长方体.jpg").size(500, 500).keepAspectRatio(false).toFile("nmnjrbi7vfld3fat53hw.jpg");}

效果,图片紧按照指定大小缩放,图片变形

其他使用方法

     /*** 指定大小和比例进行缩放* * @throws IOException*/private void test1() throws IOException {/** size(width,height) 若图片横比200小,高比300小,不变* 若图片横比200小,高比300大,高缩小到300,图片比例不变 若图片横比200大,高比300小,横缩小到200,图片比例不变* 若图片横比200大,高比300大,图片按比例缩小,横为200或高为300*/Thumbnails.of("粉色长方体.jpg").size(200, 300).toFile("nmnjrbi7vfld3fat53hw.jpg");Thumbnails.of("粉色长方体.jpg").size(2560, 2048).toFile("nmnjrbi7vfld3fat53hw.jpg");}/*** 按照比例进行缩放* * @throws IOException*/private void test2() throws IOException {/*** scale(比例)*/Thumbnails.of("粉色长方体.jpg").scale(0.25f).toFile("nmnjrbi7vfld3fat53hw.jpg");Thumbnails.of("粉色长方体.jpg").scale(1.10f).toFile("nmnjrbi7vfld3fat53hw.jpg");}/*** 不按照比例,指定大小进行缩放* * @throws IOException*/private void test3() throws IOException {/*** keepAspectRatio(false) 默认是按照比例缩放的*/Thumbnails.of("粉色长方体.jpg").size(120, 120).keepAspectRatio(false).toFile("nmnjrbi7vfld3fat53hw.jpg");}/*** 旋转* * @throws IOException*/private void test4() throws IOException {/*** rotate(角度),正数:顺时针 负数:逆时针*/Thumbnails.of("粉色长方体.jpg").size(1280, 1024).rotate(90).toFile("nmnjrbi7vfld3fat53hw.jpg");Thumbnails.of("粉色长方体.jpg").size(1280, 1024).rotate(-90).toFile("nmnjrbi7vfld3fat53hw.jpg");}/*** 水印* * @throws IOException*/private void test5() throws IOException {/*** watermark(位置,水印图,透明度)*/Thumbnails.of("images/test.jpg").size(1280, 1024).watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File("images/watermark.png")), 0.5f).outputQuality(0.8f).toFile("C:/image_watermark_bottom_right.jpg");Thumbnails.of("images/test.jpg").size(1280, 1024).watermark(Positions.CENTER, ImageIO.read(new File("images/watermark.png")), 0.5f).outputQuality(0.8f).toFile("C:/image_watermark_center.jpg");}/*** 裁剪* * @throws IOException*/private void test6() throws IOException {/*** 图片中心400*400的区域*/Thumbnails.of("images/test.jpg").sourceRegion(Positions.CENTER, 400, 400).size(200, 200).keepAspectRatio(false).toFile("C:/image_region_center.jpg");/*** 图片右下400*400的区域*/Thumbnails.of("images/test.jpg").sourceRegion(Positions.BOTTOM_RIGHT, 400, 400).size(200, 200).keepAspectRatio(false).toFile("C:/image_region_bootom_right.jpg");/*** 指定坐标*/Thumbnails.of("images/test.jpg").sourceRegion(600, 500, 400, 400).size(200, 200).keepAspectRatio(false).toFile("C:/image_region_coord.jpg");}/*** 转化图像格式* * @throws IOException*/private void test7() throws IOException {/*** outputFormat(图像格式)*/Thumbnails.of("images/test.jpg").size(1280, 1024).outputFormat("png").toFile("C:/image_1280x1024.png");Thumbnails.of("images/test.jpg").size(1280, 1024).outputFormat("gif").toFile("C:/image_1280x1024.gif");}/*** 输出到OutputStream* * @throws IOException*/private void test8() throws IOException {/*** toOutputStream(流对象)*/OutputStream os = new FileOutputStream("C:/image_1280x1024_OutputStream.png");Thumbnails.of("images/test.jpg").size(1280, 1024).toOutputStream(os);}/*** 输出到BufferedImage* * @throws IOException*/private void test9() throws IOException {/*** asBufferedImage() 返回BufferedImage*/BufferedImage thumbnail = Thumbnails.of("images/test.jpg").size(1280, 1024).asBufferedImage();ImageIO.write(thumbnail, "jpg", new File("C:/image_1280x1024_BufferedImage.jpg"));}

使用Thumbnails对图片进行压缩处理相关推荐

  1. java自带的resize方法_java对图片进行压缩和resize缩放的方法

    java对图片进行压缩和resize缩放的方法 发布于 2020-8-10| 复制链接 本篇文章主要介绍了java对图片进行压缩和resize调整的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一 ...

  2. 对图片进行压缩,水印,伸缩变换,透明处理,格式转换操作

    对图片进行压缩,水印,伸缩变换,透明处理,格式转换操作 1 /** 2 * <html> 3 * <body> 4 * <P> Copyright 1994 Jso ...

  3. java压缩图片等比缩放_java对图片进行压缩和resize缩放的方法

    序 这里展示一下如何对图片进行压缩和resize.分享给大家,具体如下: 压缩 public static boolean compress(String src,String to, float q ...

  4. 如何在线对图片进行压缩?

    图片在传输的时候很多不能传输成功怎么办?我们可以对图片进行压缩,如何在线对图片进行压缩?图片文件一般都是很小的,这里就分享一个在线压缩的方法. 1.打开迅捷PDF在线转换器,熟悉操作就可以下一步操作, ...

  5. java对图片进行压缩处理

    java对图片进行压缩处理 1.导入需要依赖的外部jar包gav 2.图片进行裁剪 前言: 减少网络开销,节约存储设备资源,同时获取更好的交互体验,同时又需要做到对图片的品质和质量没有太大的损失,需要 ...

  6. java使用Thumbnails图片压缩

    Thumbnails图片压缩 这个很早之前就发在协会的博客园里了,链接在此Thumbnails图片压缩 每次上传图片到服务器的时候,都会由于图片过大导致加载很长时间,然后就想使用图片压缩可以稍微减轻一 ...

  7. 解决上传图片自动旋转的问题以及对图片进行压缩上传

    1. 关于图片自动旋转原因 在使用PS或者其他软件旋转图片时,图片旋转了,但Orientation不会改变,由于我们使用的图片预览器能够预处理图片,使其看起来与旋转后一致,但上传图片时,浏览器并不会预 ...

  8. 关于Thumbnails图片质量压缩无效

    关于Thumbnails图片质量压缩无效 原因: Thumbnails不支持png格式的图片 解决: 使用jpg或jpeg格式的图片就能解决了

  9. Linux上对图片进行压缩

    这里要使用到强大的图片处理工具:imagemagick,它可以对图片进行格式转换.大小压缩.增加水印等操作,而不需要去写第三方的程序,只需要写简单的SHELL脚本就可以完成图片压缩操作,我的操作环境是 ...

最新文章

  1. 将ABAP透明表的定义(元数据)解析出来导入到剪切板(clipboard)里
  2. H5网页播放器播不了服务器上的mp4视频文件
  3. WEB在线预览PDF
  4. 交换机实现虚拟局域网
  5. Kaggle新手入门
  6. select2,利用ajax高效查询大数据列表(可搜索、可分页)
  7. Mysql字符串组合的问题
  8. 2016 Multi-University Training Contest 10
  9. elipse开发android 如何查看报错信息
  10. LINUX doubango编译详细过程记录
  11. Python基础语法测验习题(有答案版)
  12. 新型K4宏病毒代码分析报告
  13. Codeforces edu 88(A~E)
  14. 2908. Annoying painting tool
  15. oracle 此处不允许序号
  16. 华为设备配置小型园区网
  17. 基于ZigBee技术的智能家居系统实施方案
  18. java人工智能之神经网络中的层数怎么确定
  19. 我身边的一些数据库事故 (r5笔记第52天)
  20. MATLAB画图并将两个图排列在一起

热门文章

  1. 江西计算机会考查询,2018年江西会考成绩查询时间及入口
  2. Java—Connection的常用功能
  3. java学习class4
  4. elasticsearch实践篇: 智能运输产品
  5. PostgreSQL日志名字的由来
  6. Neovim插件NvChad踩坑实录
  7. 【花式表白】,情书加密,这样泡小师妹,没跑了
  8. 汽车网卡驱动之TJA1101B
  9. 百择电商:抖音带货佣金怎么设置?
  10. .NET图表控件TeeChart for .NET使用教程:图例设计