我对working with images很熟悉。我retrieve/read an image from a URL,其中URL没有文件扩展名。然后我希望write/save the image到本地存储,但是我必须指定图像文件扩展名(即JPG,PNG等),我无法通过BufferedImage检索其扩展名。

请指出一下该如何做?
任何其他方法都可以。

最佳答案

使用ImageReader.getFormatName()

您可以使用ImageIO.getImageReaders(Object input)获取图像读取器。

我尚未亲自测试过,但是您可以尝试以下方法:

ImageInputStream iis = ImageIO.createImageInputStream(file);

Iterator<ImageReader> imageReaders = ImageIO.getImageReaders(iis);

while (imageReaders.hasNext()) {
    ImageReader reader = (ImageReader) imageReaders.next();
    System.out.printf("formatName: %s%n", reader.getFormatName());
}

09-07 01:13