java获取oracle数据库blob图片字节流显示到jsp页面出错bogus ?报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

java获取oracle数据库blob图片字节流显示到jsp页面出错bogus ?报错

2020-06-22 14:37:08 142 1

最近在做项目时需要从oracle读取blob图片列表,显示到jsp页面上。使用以下代码实现,大部分图片显示正常,但是有些图片执行BufferedImage bis = ImageIO.read(is);会报错。求高手指教,这个问题该怎么解决?


报错信息如下:


javax.imageio.IIOException: bogus marker length


主要代码如下:


ps = con.prepareStatement(sql);
rs = ps.executeQuery();
if (rs.next()) {
    blob = rs.getBlob(field[1]);
    if(blob!=null){
        inStream = blob.getBinaryStream();
        long nLen = blob.length();
        int nSize = (int) nLen;
        data = new byte[nSize];
        inStream.read(data);
        data = changeImgSize(data, width, height);
    }
}


/**

* 缩小或放大图片
* @param data 图片的byte数据
* @param w 需要缩到的宽度
* @param h 需要缩到高度
* @return 缩放后的图片
*/
public static byte[] changeImgSize(byte[] data, int nw, int nh) {
byte[] newdata = null;
BufferedImage bis = null;
ByteArrayOutputStream baos = null;
try {
InputStream is = new ByteArrayInputStream(data);
bis = ImageIO.read(is);
int w = bis.getWidth();
int h = bis.getHeight();
double sx = (double) nw / w;
double sy = (double) nh / h;
AffineTransform transform = new AffineTransform();
transform.setToScale(sx, sy);
AffineTransformOp ato = new AffineTransformOp(transform, null);
// 原始颜色
BufferedImage bid = new BufferedImage(nw, nh,
BufferedImage.TYPE_3BYTE_BGR);
ato.filter(bis, bid);
// 转换成byte字节
baos = new ByteArrayOutputStream();
ImageIO.write(bid, "jpeg", baos);
newdata = baos.toByteArray();
} catch (Exception e) {
e.printStackTrace();
} finally{
if(null != bis){
bis = null;
}
try {
baos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return newdata;
}


取消 提交回答
全部回答(1)
相关问答

17

回答

【大咖问答】对话PostgreSQL 中国社区发起人之一,阿里云数据库高级专家 德哥

阿里ACE 彭飞 2019-07-10 09:36:10 1035598浏览量 回答数 17

162

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 226093浏览量 回答数 162

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157661浏览量 回答数 145

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 336976浏览量 回答数 8

110

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 295479浏览量 回答数 110

18

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 646735浏览量 回答数 18

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 259803浏览量 回答数 38

21

回答

请教一下数据量有100万条左右要什么配置?

易网网络 2013-03-27 15:18:02 192630浏览量 回答数 21

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 305593浏览量 回答数 249

2

回答

区域选择帮助

fanyue88888 2012-12-07 15:54:30 204370浏览量 回答数 2
+关注
爱吃鱼的程序员
https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
2
文章
21569
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载