8000 ImageMetadataReader does not handle FileType.Crx · Issue #660 · drewnoakes/metadata-extractor · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
ImageMetadataReader does not handle FileType.Crx #660
Open
@hanslovsky

Description

@hanslovsky

I am using metadata-extractor to automatically rename my Canon camera's jpegs with date information. Now, I want to do the same thing for raw files (CR3), but I found that ImageMetadataReader [does not handle FileType.Crx]("Canon EOS R3.cr3" ) (here I use jgo to run imageMetadataReader.main):

$ jgo com.drewnoakes:metadata-extractor:2.19.0:@ImageMetadataReader "Canon EOS R3.cr3"
Processed 11.708 MB file in 14.73 ms

[File Type] Detected File Type Name = CRX
[File Type] Detected File Type Long Name = Canon Camera Raw
[File Type] Expected File Name Extension = cr3
[File] File Name = Canon EOS R3.cr3
[File] File Size = 12277000 bytes
[File] File Modified Date = Wed Feb 21 23:18:31 -05:00 2024

The example image "Canon EOS R3.cr3" is the same one as in #605. I am a bit confused because the author of #605 seems to be able to extract image metadata from the same image.

In my Code, I tried using ImageMetadataReader, which does not read any information, and TiffMetadataReader, which fails with TiffProcessingException: Unclear distinction between Motorola/Intel byte ordering: 0.

This is a minimum example using the image from #605 using Kotlin's kscript:

#!/usr/bin/env kscript

@file:DependsOn("com.drewnoakes:metadata-extractor:2.19.0")

import java.io.File

import com.drew.imaging.ImageMetadataReader
import com.drew.imaging.tiff.TiffMetadataReader

val file = File("Canon EOS R3.cr3")
println("image metadata: ${ImageMetadataReader.readMetadata(file).directories}")
println("tiff metadata: ${TiffMetadataReader.readMetadata(file).directories}")

The output is

image metadata: [File Type Directory (3 tags), File Directory (3 tags)]
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at Main_Metadata_extractor_issue$Companion.main(Main_Metadata_extractor_issue.kt:6)
        at Main_Metadata_extractor_issue.main(Main_Metadata_extractor_issue.kt)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.jetbrains.kotlin.runner.AbstractRunner.run(runners.kt:70)
        at org.jetbrains.kotlin.runner.Main.run(Main.kt:188)
        at org.jetbrains.kotlin.runner.Main.main(Main.kt:198)
Caused by: com.drew.imaging.tiff.TiffProcessingException: Unclear distinction between Motorola/Intel byte ordering: 0
        at com.drew.imaging.tiff.TiffReader.processTiff(TiffReader.java:60)
        at com.drew.imaging.tiff.TiffMetadataReader.readMetadata(TiffMetadataReader.java:71)
        at com.drew.imaging.tiff.TiffMetadataReader.readMetadata(TiffMetadataReader.java:48)
        at kscript.scriplet.Metadata_extractor_issue.<init>(Metadata_extractor_issue.kts:10)

It is quite obvious to me that I am doing something wrong here, especially since #605 can retrieve metadata from CR3. Is there another MetadataReader that I should use for raw CR3 images?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0