首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >使用commons-imaging 获取图片的尺寸

使用commons-imaging 获取图片的尺寸

原创
作者头像
时光_赌徒
发布2025-01-07 09:36:21
发布2025-01-07 09:36:21
4471
举报
文章被收录于专栏:记录记录

1、导入依赖包

以gradle 导入为例,maven类似

代码语言:txt
复制
   implementation ('org.apache.commons:commons-imaging:1.0.0-alpha5')

2、计算图片实际尺寸

代码语言:txt
复制
//1、通过MultipartFile file 获取ImageInfo
 ImageInfo imageInfo = Imaging.getImageInfo(file.getBytes());
 
 //2、获取DPI
 BigDecimal widthDpiBD = new BigDecimal(imageInfo.getPhysicalWidthDpi());
 if(widthDpiBD.compareTo(BigDecimal.ZERO) < 0){
      throw new BusinessException("图片DPI不存在!");
   }
   
  BigDecimal widthBD = new BigDecimal(imageInfo.getWidth());
  //3、获取英寸
  BigDecimal widthInches = widthBD.divide(widthDpiBD, 2, RoundingMode.HALF_UP);
  BigDecimal heightDpiBD = new BigDecimal(imageInfo.getPhysicalHeightDpi());
  if(heightDpiBD.compareTo(BigDecimal.ZERO) < 0){
        throw new BusinessException("图片DPI不存在!");
   }
   BigDecimal heightBD = new BigDecimal(imageInfo.getHeight());
   BigDecimal heightInches = heightBD.divide(heightDpiBD, 2, RoundingMode.HALF_UP);
   // 4、将物理尺寸转换为毫米
   double widthMm = widthInches.multiply(new BigDecimal("25.4")).setScale(0, RoundingMode.HALF_UP).doubleValue();
   double heightMm = heightInches.multiply(new BigDecimal("25.4")).setScale(0, RoundingMode.HALF_UP).doubleValue();

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、导入依赖包
  • 2、计算图片实际尺寸
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档