BASE64Encoder 编码 图片显示不完整

CTO1206 2010-07-22 07:15:23
InputStream is = new BufferedInputStream(new FileInputStream("D:\\001.jpg"));

byte[] buffer = new byte[is.available()];
is.read(buffer);
BASE64Encoder encoder = new BASE64Encoder();
this.setFileBaseData(encoder.encode(buffer));

解码后图片显示不完整!
那位大侠帮忙看看
...全文
565 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
myfamiliar 2011-08-03
  • 打赏
  • 举报
回复
正好我在写程序搜索问题答案,就帮你解答了吧
InputStream is = new BufferedInputStream(new FileInputStream("D:\\001.jpg"));
byte[] buffer = new byte[is.available()];
is.read(buffer);
原因在于代码的第三行.由于 001图片过大,buffer过大造成Java heap space错误.所以你的较大的图片才显示了一半.
huhuhelen 2010-07-22
  • 打赏
  • 举报
回复
学习 下
CTO1206 2010-07-22
  • 打赏
  • 举报
回复
<img src='data:image/jpg;base64, 图片有大小限制吗?

<img src='data:image/jpg;base64,

InputStream is = new BufferedInputStream(new FileInputStream("D:\\ww.jpg"));

byte[] buffer = new byte[is.available()];
is.read(buffer);
BASE64Encoder encoder = new BASE64Encoder();
encoder.encode(buffer)

经过编码后,大一点的图片显示不完整,小一点能完整显示,怎么回事?哪位大侠碰到过?最后是怎么

解决的?
simaa0106 2010-07-22
  • 打赏
  • 举报
回复
编码问题。图片其实就是数据通过特殊算法后的一个集合。你转变编码了肯定得出来的结果会多少有点出入。

解决的办法就是你在读取之后,写入之前进行编码的转换

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧