Java IllegalArgumentException:源光栅标注栏和源颜色空间组件的数量与彩色图像异常不匹配
上面有人提出的答案,将我的彩色图像转换为黑白图像。所以这不适合我的问题Java IllegalArgumentException:源光栅标注栏和源颜色空间组件的数量与彩色图像异常不匹配,java,image-processing,bufferedimage,javax.imageio,Java,Image Processing,Bufferedimage,Javax.imageio,上面有人提出的答案,将我的彩色图像转换为黑白图像。所以这不适合我的问题 File file = new File("path"); BufferedImage bufferedImage = ImageIO.read( file ); 这是代码,下面是图片。下载图像并保存在电脑中。然后尝试使用正确的path值运行上述代码,它将在主题中引发异常 下载图片: 只要有人能从给定的图像中获得java.awt.image.buffereImage对象就足够了(不应将图像转换为灰度图像
File file = new File("path");
BufferedImage bufferedImage = ImageIO.read( file );
这是代码,下面是图片。下载图像并保存在电脑中。然后尝试使用正确的path值运行上述代码,它将在主题中引发异常
下载图片:
只要有人能从给定的图像中获得java.awt.image.buffereImage对象就足够了(不应将图像转换为灰度图像)
如果你能回答这个问题,你就是一个天才:D.请提供帮助。这里的代码没有问题。我可以使用ImageIO插件读取您的图像。这个图像阅读器试图对JPEG错误保持宽容,并且比标准的Java JPEGImageReader稍微有点能力 但是,您的JPEG文件似乎有许多问题,因此无法100%读取:
- 首先,图像中的ICC颜色配置文件有4个颜色分量,而图像数据只有3个颜色分量(这导致了您看到的异常)。根本原因可能是转换软件不好。使用ExifTool或类似软件查看元数据,以便进一步调查。在这种情况下,我的读者只会给出一个警告,而忽略ICC配置文件
- 其次,JPEG流过早结束(缺少EOI)。您会注意到在图像的右下角有一些垃圾像素。除了获取原始图像(实际上,图像包含一个缩略图,并且缩略图没有损坏;如果确实需要,您可以尝试从中重新创建数据),您对此无能为力。我的阅读器返回的图像与本机软件读取的图像一致
libimage exiftool perl
包含exiftool。因此,我有一个图像,颜色分量的值为3
,颜色空间数据为CMYK
。IIRC,CMYK有4个颜色分量,不匹配是导致异常的原因。是吗?Maven dependency:com.tweelvemonkeys.imageioimageio-jpeg3.3.1