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。
我正在开发一个程序,该程序本质上是一个 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。