文档章节

java读取图片长宽的问题

隆回水哥
 隆回水哥
发布于 2015/12/21 23:13
字数 219
阅读 56
收藏 0

      一般在上传图片的情景下,需要获取图片的尺寸保存进数据库,便于以后做进一步的处理。

得到图片的字节数组数据不做详细说明,常规的处理方法如下,在网上一搜一大把。

// byte[] data 图片的字节数据
BufferedImage bi = ImageIO.read(new ByteArrayInputStream(data));
int width = bi.getWidth();
int height = bi.getHeight();

以上代码对于一般的rgb图片没问题,但对于cmyk格式的图片,就会报异常

javax.imageio.IIOException: Unsupported Image Type
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(Unknown Source)
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(Unknown Source)
    at javax.imageio.ImageIO.read(Unknown Source)

apache有一个纯java的处理图片的类库sanselan,maven引用如下

<dependency>
    <groupId>org.apache.sanselan</groupId>
    <artifactId>sanselan</artifactId>
    <version>0.97-incubator</version>
</dependency>

获取图片长宽的代码如下:

// byte[] data 图片字节数据
Dimension dimension = Sanselan.getImageSize(data);
int width = dimension.width;
int height = dimension.height;


© 著作权归作者所有

共有 人打赏支持
隆回水哥
粉丝 14
博文 48
码字总数 18247
作品 0
深圳
高级程序员
私信 提问
图片优化问题!java代码

现在有个问题,就是要用JAVA处理一些JPG或者是PNG的图片,但是这些图片都很精美的那种,分辨率比较高,一般都有几百K,但是我们想在网络上传送 这些图,主要是文件大小不能大,并且也不需要效...

苏别v
2015/07/09
170
1
JAVA读取Oracle中的blob图片字段并显示

整个流程分为四步,连接oracle数据库 -> 读取blob图片字段 -> 对图片进行缩放 ->把图片展示在jsp页面上。 下面进行详细描述: 1. java连接Oracle 注:数据库是Oracle10g版本为10.2.0, 在数据...

underA
2013/03/15
0
1
Ant 中 *Log4j.properties 找不到文件的问题

在用 Ant 进行构建,部署,运行过程中,发现一小问题,就是在运行时总是提示“系统找不到指定的文件”。害得我花了不少时间,最后终于弄清楚了问题的原因。以下的错误代码(贴出来好让后面的...

xiaofer2008
2011/01/14
0
0
基于AEAI ESB的处理大字段

1.背景 数据迁移中大字段一直是个比较头疼的问题,一旦大字段中值大于32K的话就无法用sql语句来实现插入和更新。通用的解决办法一般有两种:存储过程和JDBC。下面主要总结下基于AEAI ESB用J...

数通畅联
2015/01/22
0
0
【百度AI人像分割】Java示例代码

接口能力: 对于输入的一张图片(可正常解码,且长宽比适宜),识别人体的轮廓范围,与背景进行分离,适用于拍照背景替换、照片合成、身体特效等场景。输入正常人像图片,返回分割后的二值结果...

小帅帅丶
09/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS官方钱包keosd

EOS官方钱包的名称是keosd,它负责管理你的私钥,并且帮你进行交易的签名。 不过不幸的是,keosd钱包对普通用户并不友好,它是一个命令行程序,目前还没有像以太坊的mist那样的图形化界面,而...

汇智网教程
今天
25
0
ArrayList的实现原理以及实现线程安全

一、ArrayList概述 ArrayList是基于数组实现的,是一个动态的数字,可以自动扩容。 ArrayList不是线程安全的,效率比较高,只能用于单线程的环境中,在多线程环境中可以使用Collections.syn...

一看就喷亏的小猿
今天
31
0
Netty 备录 (一)

入职新公司不久,修修补补1个月的bug,来了点实战性的技术---基于netty即时通信 还好之前对socket有所使用及了解,入手netty应该不是很难吧,好吧,的确有点难,刚看这玩意的时候,可能都不知道哪里...

_大侠__
昨天
35
0
Django简单介绍和用户访问流程

Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的Web应用框架,由Python写成。 Django遵守BSD版权,初...

枫叶云
昨天
49
0
Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)

应用场景 之前我们已经通过《Spring Cloud Stream消费失败后的处理策略(一):自动重试》一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试...

程序猿DD
昨天
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部