我使用 ImageIo 直接读取
ByteArrayInputStream
但对于某些特定图像,我收到如下错误:
IllegalArgumentException: Numbers of source Raster bands and source color space components do not match
我不确定这里到底出了什么问题。
我已经关注了SO中的一堆线程:
获取 BufferedImage 作为资源,以便它可以在 JAR 文件中工作
IllegalArgumentException:源光栅波段和源颜色空间分量的数量不匹配对于彩色图像异常
但无法跟进代码中到底需要更改哪些内容来处理不适当的图像(在转换时会出现一些损坏的像素)。
编辑1:我以某种方式替换了机密内容,这是我正在尝试阅读的图像:https://i.imgur.com/r8vXYnB.jpeg
有人可以帮助我使用代码来修复这些图像错误吗?
对我来说,问题是默认情况下
javax.ImageIO
不支持 JPEG。我在我的构建中添加了这个以使事情正常工作:
// JPEG Support
"com.twelvemonkeys.imageio" % "imageio-jpeg" % "3.9.3"
根据您可能拥有的图像类型,您可能需要添加更多此类扩展。
您可以在此自述文件中找到所有内容:https://github.com/haraldk/TwelveMonkeys/blob/master/README.md