点击打开原文链接

jar

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

读取图片源,设置生成文件位置

import java.io.File;
import java.io.IOException;import org.junit.Test;import net.coobird.thumbnailator.Thumbnails;public class ThumbTest {@Testpublic void testHandlePicture() throws IOException {File fromPic = new File("E:/pic/测试图片1024px-768px.jpg");//目标图片位置-图片源File toPic = new File("E:/pic/缩小的图片.jpg");            //生成文件位置File waterPic=new File("picture/水印图片.jpg");            //作为水印的图片

注意:以上代码程序未结束,由下边粘贴代码不断追加

按指定大小把图片进行缩放(会遵循原图高宽比例)

//按指定大小把图片进行缩和放(会遵循原图高宽比例)
//此处把图片压成400×500的缩略图
Thumbnails.of(fromPic).size(400,500).toFile(toPic);//变为400*300,遵循原图比例缩或放到400*某个高度 

按照指定比例进行缩小和放大

//按照比例进行缩小和放大
Thumbnails.of(fromPic).scale(0.2f).toFile(toPic);//按比例缩小
Thumbnails.of(fromPic).scale(2f);//按比例放大

按指定的大小进行缩放(不遵循原图比例)

//不按比例,就按指定的大小进行缩放
Thumbnails.of(fromPic).size(100, 100).keepAspectRatio(false).toFile(toPic);
//或者Thumbnails.of(fromPic).forceSize(100,100).toFile(toPic);

图片尺寸不变,压缩图片文件大小

//图片尺寸不变,压缩图片文件大小outputQuality实现,参数1为最高质量
Thumbnails.of(fromPic).scale(1f).outputQuality(0.25f).toFile(toPic);

给图片加水印

//给图片加水印,watermark(位置,水印图,透明度)Positions.CENTER表示加在中间
Thumbnails.of(fromPic).size(400,400)
.watermark(Positions.CENTER,ImageIO.read(waterPic),0.5f)
.outputQuality(0.8f).toFile(toPic); 

转换图片格式

//用outputFormat(图像格式)转换图片格式,保持原尺寸不变
Thumbnails.of(fromPic).scale(1f).outputFormat("png")
.toFile("picture/png格式的图片.png"); 

输出成文件流OutputStream

//输出成文件流OutputStream
OutputStream os=new FileOutputStream(toPic);
Thumbnails.of(fromPic).size(120,120).toOutputStream(os);  

输出成BufferedImage

//输出BufferedImage,asBufferedImage()返回BufferedImage
BufferedImage bi=Thumbnails.of(fromPic).size(120,120).asBufferedImage();
ImageIO.write(bi,"jpg",toPic);
//压缩至指定图片尺寸(例如:横400高300),保持图片不变形,多余部分裁剪掉(这个是引的网友的代码)
BufferedImage image = ImageIO.read(fromPic);
Builder<BufferedImage> builder = null;  

压缩至指定图片尺寸,保持图片不变形,多余部分裁剪掉

//压缩至指定图片尺寸(例如:横400高300),保持图片不变形,多余部分裁剪掉(这个是引的网友的代码)
BufferedImage image = ImageIO.read(fromPic);
Builder<BufferedImage> builder = null;  int imageWidth = image.getWidth();
int imageHeitht = image.getHeight();
if ((float)300 / 400 != (float)imageWidth / imageHeitht) {  if (imageWidth > imageHeitht) {  image = Thumbnails.of(fromPic).height(300).asBufferedImage();  } else {  image = Thumbnails.of(fromPic).width(400).asBufferedImage();  }  builder = Thumbnails.of(image).sourceRegion(Positions.CENTER, 400, 300).size(400, 300);
} else {  builder = Thumbnails.of(image).size(400, 300);
}
builder.outputFormat("jpg").toFile(toPic); 
//scale          参数是浮点数,大于1表示放大,小于1表示缩小
//outputQuality     参数是浮点数,质量压缩,0-1之间
//keepAspectRatio   在调整尺寸时保持比例,默认为true,如果要剪裁到特定的比例,设置为false即可

*注意:scale、width|height、size三者不能同时共存,但必须要有一个

Thumbnails相关推荐

  1. java thumbnails 中心点_java Thumbnails 图片处理的使用

    在后端开发的过程中,都逃不开与文件传输特别是图片的传输打交道,但是因为现在各种拍照设备发展越来越快,拍出的照片更是越来越清晰,但是照片文件的大小也是越来越大了,手机拍照小则2M大则30M这在网络传输过 ...

  2. 使用Thumbnails压缩或放大图片大小(java)

    首先看下缩放图片的核心代码,其实只有一行而已 //ins表示ByteArrayInputStream形式的图片 //scale中的数据就是缩小或者放大的比例,比如小于1则表示压缩,大于1表示放大 // ...

  3. Android之获取手机上的图片和视频缩略图thumbnails

    2019独角兽企业重金招聘Python工程师标准>>> [0]大家都知道Android从1.5开始刚插入SD卡时系统会调用MediaScanner服务进行后台扫描,索引新的歌曲.图片 ...

  4. linux下的c语言mysql编程,详解java google Thumbnails 图片处理

    在后端开发的过程中,都逃不开与文件传输特别是图片的传输打交道,但是因为现在各种拍照设备发展越来越快,拍出的照片更是越来越清晰,但是照片文件的大小也是越来越大了,手机拍照小则2M大则30M这在网络传输过 ...

  5. No Thumbnails for Custom Picture Library Definition

    From:http://www.novolocus.com/2009/05/21/no-thumbnails-for-custom-picture-library-definition/  No Th ...

  6. Copy and Paste GAN: Face Hallucination from Shaded Thumbnails

    Copy and Paste GAN: Face Hallucination from Shaded Thumbnails 2020 CVPR 1.引言 2.网络结构 3.损失函数 4.实验结果 与最 ...

  7. google之Thumbnails图片等比压缩,保持图片清晰

    maven之pom.xml依赖 <dependency><groupId>net.coobird</groupId><artifactId>thumbn ...

  8. 【技术贴】解决相册thumbnails文件过大 小米缩略图缓存根除办法

    命令:cd.> I:\DCIM\.thumbnails I为你的小米插到电脑上的usb的盘符,进到你的usb里面的此文件夹中,删除.thumbnails文件夹,然后把上面的命令右键复制,然后再c ...

  9. 浅谈Thumbnails压缩gif图片质量的实现方式

    Thumbnails是一个比较大众的图片处理工具,类似的工具还有hutool,可以对图片进行裁剪.缩放.旋转.格式转换.水印等.然而它只提供单张图片的压缩,对于gif的压缩,却是需要我们自己去处理. ...

  10. [经验技巧] 完美解决小米DCIM文件夹下生成.thumbnails缩略图文件夹的方法

    http://www.miui.com/thread-1005989-1-1.html .thumbnails的文件随着时间发展会变的超级大,是它里面的.thumbdata3--1967290299文 ...

最新文章

  1. 在预测心脏病和中风这件事上,AI又超过了人类医生(附论文)
  2. 人工智能一定要用python吗_学人工智能一定要学Python吗?
  3. 手机芯片三国杀:高通、联发科、展讯都想成霸主
  4. H.264基础知识及视频码流解析
  5. MRAppMaster详细分析
  6. php upload 缓存_php-使用vich_uploader的liip_imagine无法创建缓存
  7. CF1067D Computer Game
  8. 点击pv转化率_互联网中一些常用指标(PV、UV、蹦失率、转换率、退出率)
  9. android 关于报错SecurityException revoked permission android.permission.CAMERA
  10. 工业制造中的大数据分析应用_工业大数据分析方案-美林数据
  11. Vue组件通信:父传子、子传父、跨组件通信
  12. 给kvm虚机开放对外访问的端口
  13. 谷歌浏览器Chrome错误提示Flash过期怎么办(转)
  14. 阿里云服务器购买折扣优惠券及注意事项
  15. Some useful linux commands
  16. 新视野大学英语4-UNIT4-Expression in use
  17. (转)我奋斗了十八年不是为了和你一起喝杯咖啡
  18. c语言 猜数字小游戏
  19. 云计算与云原生 — Docker 容器技术完全解析
  20. mac date命令详解

热门文章

  1. php smarty {php},PHP Smarty模板
  2. java计算机毕业设计Web企业客户管理系统MyBatis+系统+LW文档+源码+调试部署
  3. webservice Connection timed out
  4. Guitar Pro 8.1 重磅发布!Guitar Pro 2022 的全新功能介绍
  5. 安装双系统(win10+ubuntu)教程及遇到的相关问题汇总
  6. PyQt5 menu菜单栏设置
  7. 前方高能!12年高级工程师的“飞升之路”,带你碾压面试官!
  8. 关于CentOS中jdk配置版本不一致的问题
  9. 红外模块android驱动添加
  10. (转载)迁移学习概述