Java ImageReader不返回任何图像
我整天都在阅读SO和Oracle,学习如何从.jpg图像中提取元数据(提取嵌入在am图像中的GPS数据)。我所处的环境对于第三方库没有太多选择 我偶然发现了ImageIO、ImageReader和iimetadata的组合,但我遇到了问题:Java ImageReader不返回任何图像,java,image-processing,metadata,Java,Image Processing,Metadata,我整天都在阅读SO和Oracle,学习如何从.jpg图像中提取元数据(提取嵌入在am图像中的GPS数据)。我所处的环境对于第三方库没有太多选择 我偶然发现了ImageIO、ImageReader和iimetadata的组合,但我遇到了问题: File file = new File("/home/djtorrey/Pictures/test.jpg"); System.out.println(file.isFile()); ImageInputStream iis = I
File file = new File("/home/djtorrey/Pictures/test.jpg");
System.out.println(file.isFile());
ImageInputStream iis = ImageIO.createImageInputStream(file);
Iterator readers = ImageIO.getImageReadersByFormatName("jpg");
ImageReader reader = (ImageReader)readers.next();
reader.setInput(iis,true);
int value = reader.getNumImages(false);
System.out.println(value);
这就是我现在正在测试的代码。如您所见,我正在创建一个指向图像的文件对象,验证它是否将其视为文件(确实如此),然后基于该文件创建ImageInputStream。通过将文件推入BuffereImage对象并从中读取数据,我已经验证了它没有损坏
我获取jpg的ImageReader,将ImageReader输入设置为ImageInputStream,然后检查它看到的图像数量
我应该看到1代表我指向的一个图像,但它一直返回-1,表示没有图像
BLUF:在上面的代码中,我做错了什么,它没有正确地看到我指向的图像?返回值-1只是表示需要搜索来确定流中剩余图像的数量:返回值-1只是表示需要搜索来确定剩余图像的数量在流中:reader.getNumImages(true)是否返回不同的值?返回值-1表示需要进行搜索以确定流中剩余图像的数量:@Gilfoy谢谢,我会查看它quick@Gilfoy看来我错过了那个小道消息,好像有用。如果你把它作为一个答案,我会非常高兴地相信你确实
reader.getNumImages(true)
返回了一个不同的值?返回值-1只是表示需要搜索来确定流中剩余图像的数量:@Gilfoy谢谢,我会检查它quick@Gilfoy看来我错过了那条新闻,它似乎起作用了。如果你能回答我的问题,我很乐意相信你