BASE64Encoder 编码 图片显示不完整

时间:2022-11-10 20:53:25
            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));

解码后图片显示不完整!
那位大侠帮忙看看

4 个解决方案

#1


 编码问题。图片其实就是数据通过特殊算法后的一个集合。你转变编码了肯定得出来的结果会多少有点出入。

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

#2


<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)

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

解决的?

#3


学习 下

#4


正好我在写程序搜索问题答案,就帮你解答了吧
InputStream is = new BufferedInputStream(new FileInputStream("D:\\001.jpg")); 
  byte[] buffer = new byte[is.available()];  
  is.read(buffer);
原因在于代码的第三行.由于 001图片过大,buffer过大造成Java heap space错误.所以你的较大的图片才显示了一半.

#1


 编码问题。图片其实就是数据通过特殊算法后的一个集合。你转变编码了肯定得出来的结果会多少有点出入。

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

#2


<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)

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

解决的?

#3


学习 下

#4


正好我在写程序搜索问题答案,就帮你解答了吧
InputStream is = new BufferedInputStream(new FileInputStream("D:\\001.jpg")); 
  byte[] buffer = new byte[is.available()];  
  is.read(buffer);
原因在于代码的第三行.由于 001图片过大,buffer过大造成Java heap space错误.所以你的较大的图片才显示了一半.