作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在开发一个程序,该程序本质上将成为专门用于 JPEG 图像的 EXIF 数据压模。
GUI 将由一个搜索框、一个加载按钮和一个显示 EXIF 数据的显示框组成。但是我遇到了读者的问题:
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 的,因此我使用查找/替换将所有 PNG 替换为 JPEG。
最佳答案
好的,好的。我不知道如何在不直言不讳的情况下解释这一点。
在编程中,您不能只是将对象的名称 PNGMetadata
更改为 JPEGMetadata
并期望它能正常工作。
你看,对象 PNGMetadata
被开发用于且仅用于 PNG 图像。您不能只是将名称更改为 JPEG 并期望它能正常工作。
如果您需要处理 JPEG 的内容,我可以推荐一个库来读取 JPEG 元数据。请参阅下面的链接。
关于java - JPEGMetadata 无法解析为类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27996289/
我正在开发一个程序,该程序本质上将成为专门用于 JPEG 图像的 EXIF 数据压模。 GUI 将由一个搜索框、一个加载按钮和一个显示 EXIF 数据的显示框组成。但是我遇到了读者的问题: publi
我是一名优秀的程序员,十分优秀!