您的代码在这里没有错。我可以使用ImageIO的JPEGImageReader插件读取您的图像。该图像读取器尝试宽大处理JPEG错误,并且比标准Java JPEGImageReader略胜一筹。
但是,您的JPEG文件似乎有很多问题,因此无法100%读取:
- 首先,图像中的ICC颜色配置文件具有4种颜色成分,而图像数据仅具有3种颜色成分(这会导致您看到异常)。根本原因可能是转换软件不正确。使用ExifTool或类似软件查看元数据以进行进一步调查。我的读者只会忽略ICC配置文件。
- 其次,JPEG流过早结束(缺少EOI)。您会注意到图像的右下方有一些垃圾像素。除了获取原始图像外,您无能为力(嗯,实际上,图像包含缩略图并且缩略图未损坏;如果您确实需要,可以尝试从中重新创建数据)。我的阅读器返回的图像与本机软件读取的图像一致。



