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