开发者社区> 问答> 正文

怎么读取图片的分辨率值

项目需要,对上传的图片需要获取并判断它的dpi值是否合格。右键单击图片,查看其属性,点击详细信息,可以看到图片的长宽(像素),以及水平、垂直分辨率(dpi),当然这种方式仅限于jpg图片,其他格式的图片可以使用ps查看。
从网上查了很多资料,很多人对分辨率的理解就是图片的长宽,我不是专门研究图片的,所以概念上不作辩论,但图片属性和ps显示的分辨率值单位均为dpi,长宽是另外的。
我在网上找到个apache的开源类——Sanselan(sanselan-0.97-incubator.jar),用简单的java代码试了一下,可以准确地读到dpi值,用了一个ImageInfo类,我用的InputStream实例化的ImageInfo。可以用到Uedit上传图片时,用Uedit提供的图片输入流实例化ImageInfo类,对上传的合格图片,有的dpi值读到却是-1,就是失败了,希望有使用Sanselan经验的人指点迷津。

展开
收起
蛮大人123 2016-03-04 13:09:11 5364 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    Ueditor富文本编辑器会对上传的图片进行修改,我所遇到的情况是,它把png图片改为了jpg图片,图片的大小,长宽也都变了。但不是所有上传的图片都会被转换,Ueditor有个阀值,把这个值调大了,图片就不会变了。
    Sanselan这个开源jar包,现在改名为Imaging。查看官方文档说明可以发现,这个开源组件并不是支持所有的图片,某些格式的图片仅支持符合某种规范的,所以某些从网上下载的图片读到的dpi值为-1。这只能提示用户使用ps软件将图片处理下或另存为一下,再上传就可以读取到dpi值了。

    2019-07-17 18:52:07
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载