我想从单个文件中读取图像元数据。
我尝试了以下代码:
http://johnbokma.com/java/obtaining-image-metadata.html
当我运行它时,我得到build successful
但什么也没发生。
public class Metadata {
public static void main(String[] args) {
Metadata meta = new Metadata();
int length = args.length;
for ( int i = 0; i < length; i++ )
meta.readAndDisplayMetadata( args[i] );
}
void readAndDisplayMetadata( String fileName ) {
try {
File file = new File( fileName );
ImageInputStream iis = ImageIO.createImageInputStream(file);
Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);
if (readers.hasNext()) {
// pick the first available ImageReader
ImageReader reader = readers.next();
// attach source to the reader
reader.setInput(iis, true);
// read metadata of first image
IIOMetadata metadata = reader.getImageMetadata(0);
String[] names = metadata.getMetadataFormatNames();
int length = names.length;
for (int i = 0; i < length; i++) {
System.out.println( "Format name: " + names[ i ] );
displayMetadata(metadata.getAsTree(names[i]));
}
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}
请帮忙 :)
您没有正确指定文件的路径。下面的变化应该表明了这一点!
public static void main(String[] args) {
Metadata meta = new Metadata();
int length = args.length;
for ( int i = 0; i < length; i++ ) {
if (new File(args[i]).exists()) {
meta.readAndDisplayMetadata( args[i] );
} else {
System.out.println("cannot find file: " + args[i]);
}
}
}
编辑 - 更简单的代码示例
我们现在静态定义要使用的文件。
public static void main(String[] args) {
Metadata meta = new Metadata();
String filename = "C:\\Users\\luckheart\\Pictures\\Sample Pictures\\Koala.jpg";
if (new File(filename).exists()) {
meta.readAndDisplayMetadata(filename);
} else {
System.out.println("cannot find file: " + filename);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)