解码HTML中的Base64图像时的奇怪行为

时间:2018-07-06 13:06:15

标签: java image base64 illegalargumentexception

此问题与this previous question有关,这是可行的。如果大小有问题,我尝试显示的HTML文件约为32K字节。它包含多个图像,这些图像带有“ src” base64编码的图像(“ img”标签)。如果我注释掉除一幅图像(无关紧要)以外的所有图像,则该文件将正常显示并正确显示该幅图像。当我取消对第二张图片的注释时(再次无关紧要),就会出现奇怪的行为。应用程序会收到此异常:

  

java.lang.IllegalArgumentException:输入字节数组的4字节结尾单元有错误

这是发生异常的行(请参见previous post中Madushan Perera的解决方案,BASE64ImageView.loadImage)

Base64.getDecoder().decode(b64.getBytes()));

我只能猜测这个问题与图像的大小或数量有关。在这一点上,我的问题不是如何解决它,尽管这是显而易见的目标,但是大小(整个HTML文件将被读取为单个字符串进行解码)确实会成为问题,或者是否存在其他字符串限制。在这种情况下,该异常真正意味着什么?为什么仅当要解码的图像不止一个时? TIA。

0 个答案:

没有答案