[英]javax.imageio.ImageIO.read(new ByteArrayInputStream(data)) throws instantiation exception while reading byte array image data
public static void createImage2() {
try {
BufferedImage bImage = ImageIO.read(new File("input.jpg"));
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ImageIO.write(bImage, "jpg", bos );
byte [] data = bos.toByteArray();
ByteArrayInputStream bis = new ByteArrayInputStream(data);
BufferedImage bImage2 = ImageIO.read(bis);
ImageIO.write(bImage2, "jpg", new File("output.jpg") );
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("image created");
}
ImageIO.read(bis)
方法抛出此异常:
Exception in thread "main" java.util.ServiceConfigurationError: javax.imageio.spi.ImageReaderSpi: Provider com.aware.j2k.imageio.J2KImageReaderSpi could not be instantiated
如果您的应用程序抛出带有 SPI 消息的异常 - java.util.ServiceLoader 找不到库,对于添加库,您必须选择并添加依赖项 fe group: com.twelvemonkeys.imageio
或其他实现
对于将图像读取到BufferedImage
我建议使用
ImageIO.read(new MemoryCacheImageInputStream(new ByteArrayInputStream(file.getBytes())))
如果您需要创建新图像,我建议使用
ImageTypeSpecifier.createFromRenderedImage(source).createBufferedImage(width, height)
注意力
许多处理图像的功能默认使用磁盘存储作为缓存或 tmp
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.