JPEGMetadata 无法解析为类型

JPEGMetadata cannot be resolved to a type

我正在开发一个程序,该程序本质上是一个 EXIF 数据压模,专门用于 JPEG 图像。

GUI 将由一个搜索框、一个加载按钮和一个显示 EXIF 数据的显示框组成。但是我 运行 遇到了 reader:

的问题
public class MetaRead {
    public String readCustomData(byte[] imageData, String key) throws IOException{
        ImageReader imageReader = ImageIO.getImageReadersByFormatName("JPEG").next();

        imageReader.setInput(ImageIO.createImageInputStream(new ByteArrayInputStream(imageData)), true);

        // read metadata of first image
        IIOMetadata metadata = imageReader.getImageMetadata(0);

        //this cast helps getting the contents 

        JPEGMetadata JPEGmeta = (JPEGMetadata) metadata; 
        NodeList childNodes = JPEGmeta.getStandardTextNode().getChildNodes();

        for (int i = 0; i < childNodes.getLength(); i++) {
            Node node = childNodes.item(i);
            String keyword = node.getAttributes().getNamedItem("keyword").getNodeValue();
            String value = node.getAttributes().getNamedItem("value").getNodeValue();
            if(key.equals(keyword)){
                return value;
            }
        }
        return null;
    }
}

我在 {JPEGMetadata JPEGmeta = (JPEGMetadata metadata;} "JPEGMetadata cannot be resolved to a type"

处遇到错误

原始代码用于 PNG,所以我用 find/replace.

将所有 PNG 替换为 JPEG

好的,好的。我不知道如何不直截了当地解释这个。

在编程中,您不能只将对象的名称 PNGMetadata 更改为 JPEGMetadata 并期望它起作用。

你看,对象 PNGMetadata 是专为 PNG 图像而开发的。您不能只将名称更改为 JPEG 并期望它能正常工作。

如果您需要为 JPEG 工作的东西,我可以推荐一个库来读取 JPEG 元数据。请参阅下面的 link。

https://drewnoakes.com/code/exif/