java获取图片的长宽尺寸(毫米)

java获取图片的长宽尺寸(毫米)

现在有个需求是附上 附件图片,同时要标注图片的一些属性,比较麻烦的要标识图片的长宽尺寸(毫米),网上找了半天都是获取图片的长宽像素,但是想了想 图片的长宽尺寸不应该是和像素和设备的分辨率有关系吗。唉,无奈需求就是要长宽尺寸,只能硬着头皮去做了,还好有点眉目,就这样做了……
通过 org.apache.commons.imaging 这个包能够获取到图片的物理尺寸,后来才知道这个尺寸好像是英寸,转换下就好了(1 英寸=25.4 毫米),直接上代码

public static Properties getPicProperties2(String filePath) throws Exception{
        Properties properties = new Properties();
        File file = new File(filePath);
        if(file.exists()&&file.isFile()){
            ImageInfo imageInfo = Imaging.getImageInfo(file);
            properties.setProperty("width", String.valueOf(imageInfo.getWidth()));
            properties.setProperty("height", String.valueOf(imageInfo.getHeight()));
            properties.setProperty("physicalWidth", String.format("%.5f",imageInfo.getPhysicalWidthInch()*25.4));
            properties.setProperty("physicalHeight", String.format("%.5f",imageInfo.getPhysicalHeightInch()*25.4));
            properties.setProperty("widthdpi", String.valueOf(imageInfo.getPhysicalWidthDpi()));
            properties.setProperty("heightdpi", String.valueOf(imageInfo.getPhysicalHeightDpi()));
            String fileName = file.getName();
            properties.setProperty("fileName",fileName);
            properties.setProperty("fileType",fileName.substring(fileName.lastIndexOf(".")+1));
        }
        return properties;
    }

    public static void main(String[] args) throws Exception {
        Properties properties = getPicProperties2("C:\\Users\\21568\\Desktop\\123.jpg");
        System.out.println(properties.toString());
    }

输出结果

{height=549, fileType=jpg, widthdpi=96, heightdpi=96, width=695, physicalHeight=145.25625, fileName=123.jpg, physicalWidth=183.88542}

Process finished with exit code 0

对比下图片属性是这样的
在这里插入图片描述
看不了图片的尺寸,那就用ps打开看看
在这里插入图片描述
和打印输出的物理长宽好像还真差不多,

physicalWidth=183.88542
physicalHeight=145.25625

点击下载jar包

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值