以gradle 导入为例,maven类似
implementation ('org.apache.commons:commons-imaging:1.0.0-alpha5')//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 删除。