flu*_*xon 2 java png bytearray exception javax.imageio
我javax.imageio.ImageIO用来将a BufferedImage b写入字节数组,最后写入文件。创建字节数组时,十分之十java.lang.IndexOutOfBoundsException会抛出a。但是,仅使用相同的图像是无法复制的。
BufferedImage img = ...
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// the next line will lead to the exception being thrown
ImageIO.write(img, "png", baos);
byte[] byteArray = baos.toByteArray()
Run Code Online (Sandbox Code Playgroud)
结果是:
java.lang.IndexOutOfBoundsException
Line | Method
->> 166 | seek in
javax.imageio.stream.FileCacheImageOutputStream
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 227 | close in ''
| 1570 | write . . . . . . . . . . in javax.imageio.ImageIO
Run Code Online (Sandbox Code Playgroud)
我发现了一个错误报告,似乎描述了同样的问题。但是我找不到修复程序,尽管它来自2010年。
有任何想法吗?工作环境?链接到资源?
非常感谢您的帮助!
确实是一个错误。不过,如果您仔细阅读报告,将会看到...
客户提交的解决方法:
使用内存缓存。
尝试利用MemoryCacheImageOutputStream替代方法,直到最终解决了该错误。
ImageIO.write(img, "png", new MemoryCacheImageOutputStream(baos));
Run Code Online (Sandbox Code Playgroud)