如果图像不是RGB颜色,我如何解码图像。它应该通过支持所有格式(Jpg
,Png
,Gif
等来解码图像。)任何api都是有解码。
这是失败的代码行。那么哪种方法可以用来重新解决问题。
BufferedImage imgSelected = ImageIO.read(new File("/abs/url/to/file/image.jpg"));
答案 0 :(得分:2)
您可以在此处获得答案:https://stackoverflow.com/a/2408779/3603806
其中说:
将CMYK图像读入RGB BufferedImage。
File f = new File("/path/imagefile.jpg");
//Find a suitable ImageReader
Iterator readers = ImageIO.getImageReadersByFormatName("JPEG");
ImageReader reader = null;
while(readers.hasNext()) {
reader = (ImageReader)readers.next();
if(reader.canReadRaster()) {
break;
}
}
//Stream the image file (the original CMYK image)
ImageInputStream input = ImageIO.createImageInputStream(f);
reader.setInput(input);
//Read the image raster
Raster raster = reader.readRaster(0, null);
//Create a new RGB image
BufferedImage bi = new BufferedImage(raster.getWidth(), raster.getHeight(),
BufferedImage.TYPE_4BYTE_ABGR);
//Fill the new image with the old raster
bi.getRaster().setRect(raster);