У меня есть изображение, которое содержит 2 атрибута ориентации. Когда я пытаюсь прочитать метаданные изображения, он всегда выдает значение из второго атрибута ориентации.Извлечение метаданных Невозможно прочесть Ориентация камеры на конкретный объект
Есть ли способ прочитать первое значение ориентации?
Я приложил 2 файла. 1 - изображение, а 2 - метаданные изображения в виде текстового файла.
Я использую код, как показано ниже:
public int getImage(String name,String outputFileName) throws ImageProcessingException, IOException {
Metadata metadata;
try {
File f = new File(name);
metadata = ImageMetadataReader.readMetadata(f);
for (Directory directory : metadata.getDirectories()) {
for (Tag tag : directory.getTags()) {
if(tag.getTagName().equals("Orientation")){
final Integer index = directory.getInteger(274);
System.out.format("[%s] - %s = %s",
directory.getName(), tag.getTagName(),index);
BufferedImage image = getRotatedImage(f,index);
File img = new File(outputFileName+".png");
ImageIO.write(image,"png",img);
//return 0;
}
}
if (directory.hasErrors()) {
for (String error : directory.getErrors()) {
System.err.format("ERROR: %s", error);
}
}
}
} catch (ImageProcessingException e) {
System.out.println("Image processing exception while rotating image");
throw e;
} catch (IOException e) {
System.out.println("IO exception while rotating image");
throw e;
}
return 0;
}
Stack Overflow удалил метаданные из вашего JPEG (или его там никогда не было). –
На изображении были метаданные, но похоже, что переполнение стека использует BufferedImageReader, который удаляет метаданные: D –