如何在java中获取图像文件(BuffereImage)的格式(例如:jpen、png、gif)

如何在java中获取图像文件(BuffereImage)的格式(例如:jpen、png、gif),java,bufferedimage,file-extension,image-formats,Java,Bufferedimage,File Extension,Image Formats,我想用java获取缓冲图像格式或图像类型 InputStream stream = request.getResponseStream(); BufferedImage image= ImageIO.read(stream); LOGGER.info(image); 请参阅javax.imageio.imageio.read()code 这段代码最初是在groovy中实现的,但已翻译成java,因此可能有语法错误 public String read(InputStream in

我想用java获取缓冲图像格式或图像类型

 InputStream stream = request.getResponseStream();   
 BufferedImage image=  ImageIO.read(stream);
 LOGGER.info(image);

请参阅
javax.imageio.imageio.read()
code

这段代码最初是在groovy中实现的,但已翻译成java,因此可能有语法错误

public String read(InputStream input) throws IOException {
    ImageInputStream stream = ImageIO.createImageInputStream(input);

    Iterator iter = ImageIO.getImageReaders(stream);
    if (!iter.hasNext()) {
        return null;
    }
    ImageReader reader = (ImageReader) iter.next();
    ImageReadParam param = reader.getDefaultReadParam();
    reader.setInput(stream, true, true);
    BufferedImage bi;
    try {
        bi = reader.read(0, param);
        return reader.getFormatName();
    } finally {
        reader.dispose();
        stream.close();
    }
}

此代码可能会帮助您获得图像的扩展

public static String getFormate(String ImageName) {

    return (ImageName.substring(ImageName.indexOf('.'),ImageName.length()));
}

在上面的代码中,它首先搜索点(.)并在substring()的帮助下返回扩展名

您希望能够检查格式吗?(例如jpeg png bmp)您获得了很多反对票,因为没有解释如何从
InputStream
获取
ImageName
。实际上没有解决办法