使用Thumbnails对图片进行压缩处理
引入依赖
<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对图片进行压缩处理相关推荐
- java自带的resize方法_java对图片进行压缩和resize缩放的方法
java对图片进行压缩和resize缩放的方法 发布于 2020-8-10| 复制链接 本篇文章主要介绍了java对图片进行压缩和resize调整的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一 ...
- 对图片进行压缩,水印,伸缩变换,透明处理,格式转换操作
对图片进行压缩,水印,伸缩变换,透明处理,格式转换操作 1 /** 2 * <html> 3 * <body> 4 * <P> Copyright 1994 Jso ...
- java压缩图片等比缩放_java对图片进行压缩和resize缩放的方法
序 这里展示一下如何对图片进行压缩和resize.分享给大家,具体如下: 压缩 public static boolean compress(String src,String to, float q ...
- 如何在线对图片进行压缩?
图片在传输的时候很多不能传输成功怎么办?我们可以对图片进行压缩,如何在线对图片进行压缩?图片文件一般都是很小的,这里就分享一个在线压缩的方法. 1.打开迅捷PDF在线转换器,熟悉操作就可以下一步操作, ...
- java对图片进行压缩处理
java对图片进行压缩处理 1.导入需要依赖的外部jar包gav 2.图片进行裁剪 前言: 减少网络开销,节约存储设备资源,同时获取更好的交互体验,同时又需要做到对图片的品质和质量没有太大的损失,需要 ...
- java使用Thumbnails图片压缩
Thumbnails图片压缩 这个很早之前就发在协会的博客园里了,链接在此Thumbnails图片压缩 每次上传图片到服务器的时候,都会由于图片过大导致加载很长时间,然后就想使用图片压缩可以稍微减轻一 ...
- 解决上传图片自动旋转的问题以及对图片进行压缩上传
1. 关于图片自动旋转原因 在使用PS或者其他软件旋转图片时,图片旋转了,但Orientation不会改变,由于我们使用的图片预览器能够预处理图片,使其看起来与旋转后一致,但上传图片时,浏览器并不会预 ...
- 关于Thumbnails图片质量压缩无效
关于Thumbnails图片质量压缩无效 原因: Thumbnails不支持png格式的图片 解决: 使用jpg或jpeg格式的图片就能解决了
- Linux上对图片进行压缩
这里要使用到强大的图片处理工具:imagemagick,它可以对图片进行格式转换.大小压缩.增加水印等操作,而不需要去写第三方的程序,只需要写简单的SHELL脚本就可以完成图片压缩操作,我的操作环境是 ...
最新文章
- 将ABAP透明表的定义(元数据)解析出来导入到剪切板(clipboard)里
- H5网页播放器播不了服务器上的mp4视频文件
- WEB在线预览PDF
- 交换机实现虚拟局域网
- Kaggle新手入门
- select2,利用ajax高效查询大数据列表(可搜索、可分页)
- Mysql字符串组合的问题
- 2016 Multi-University Training Contest 10
- elipse开发android 如何查看报错信息
- LINUX doubango编译详细过程记录
- Python基础语法测验习题(有答案版)
- 新型K4宏病毒代码分析报告
- Codeforces edu 88(A~E)
- 2908. Annoying painting tool
- oracle 此处不允许序号
- 华为设备配置小型园区网
- 基于ZigBee技术的智能家居系统实施方案
- java人工智能之神经网络中的层数怎么确定
- 我身边的一些数据库事故 (r5笔记第52天)
- MATLAB画图并将两个图排列在一起