Exiv2 / exiv2

Image metadata library and tools
http://www.exiv2.org/
Other
891 stars 279 forks source link

Exiv2 usage #920

Closed tester0077 closed 5 years ago

tester0077 commented 5 years ago

In following up on the XMP SDK version issue, I am trying to print out all of the data from a test file which contains a UTF-8 string. The file happens to be a PNG without Exif data - because it is a PNG test file and Exiv2 simply exits when I try to print out all of the metadata with: exiv2 -pa test.png The test file is attached itxt-german Am I using exiv2 all wrong? or what else am I misunderstanding?

clanmills commented 5 years ago

The file doesn't appear to have any metadata. Here's the structure:

1499 rmills@rmillsmbp:~/Downloads $ exiv2 -pR 59867047-f1c6b680-9341-11e9-9eac-6b7846986e95.png 
STRUCTURE OF PNG FILE: 59867047-f1c6b680-9341-11e9-9eac-6b7846986e95.png
 address | chunk |  length | data                           | checksum
       8 | IHDR  |      13 | ...[...E.....                  | 0x52edaae4
      33 | gAMA  |       4 | ....                           | 0x0bfc6105
      49 | sBIT  |       4 | ....                           | 0x4da52df6
      65 | pCAL  |      44 | bogus units...........foo/bar  | 0x57407b1c
     121 | tIME  |       7 | .....:.                        | 0x8eff267a
     140 | bKGD  |       6 | ......                         | 0x95cd2f20
     158 | pHYs  |       9 | .........                      | 0xd2dd7efc
     179 | tEXt  |       9 | Title.PNG                      | 0xdc017935
     200 | iTXt  |      39 | Author...fr.Auteur.La plume de | 0x4fdb72e1
     251 | IDAT  |    4000 | x..\+........EFFb...X$.......D | 0x199b9fd7
    4263 | IDAT  |     831 | .......#T..6.....`....G...(<.. | 0xa028a770
    5106 | zTXt  |     202 | Description..x.M.Mj.@...>.[... | 0x692a52f9
    5320 | iTXt  |     111 | Warning...de.WARNING.x......0. | 0xb5cd3e90
    5443 | iTXt  |      83 | Deutsch...de................ S | 0x4610e79f
    5538 | IEND  |       0 |                                | 0xae426082
1500 rmills@rmillsmbp:~/Downloads $ 

Exiv2 deals with Exif, IPTC, XMP and ICC metadata. I believe ImageMagick have another metadata standard in which they put iTXt and/or zTXt "chunks" in the PNG file. In your file, we can see Title, Author and other fields.

Exiv2 does not support that standard. A volunteer agreed to undertake that project and I don't believe anything was every contributed. https://github.com/Exiv2/exiv2/issues/147

tester0077 commented 5 years ago

Thank you for referencing that old thread, I should have remembered, but, as we now are on github, my 'handle' is different, but I am the same 'Arnold' :-) Still, as far as I can see, the data in question is metadata in an image file and, unless Exiv2 carries a disclaimer, it should be handled ;-) Because several of the files of interest to me, when I get to check them in Gramps & pyExiv, are PNGs with this sort of data, it is of great interest to me to resolve the issue. I will have to review the old thread and investigate just what is missing. One of my own utilities already can find and read these chunks, so, once I find the proper place to look and understand the exiv2 code well enough, it should be doable.

clanmills commented 5 years ago

Ah, Arnold. How nice to hear from you again. I was wondering happened to you.

Disclaimer for what? We don't handle this type of metadata, and I've no doubt that there are other metadata encodings that Exiv2 doesn't know about.

The effort to implement this in PNG is quite modest (hours or days, not months or years). However there's a higher priority project which is the "Unified Metadata Container". Exiv2 start off life to deal with Exif data and does that well. Then IPTC and XMP were added. There is a project on the "unstable" branch which implements all metadata in a single container. If we support the PNG/ImageMagick, we'd must choose one of the following: 1) add a fourth metadata container 2) pretend it's Xmp (or Exif or IPTC) 3) implement the single metadata container

I'd like to do (3). When will I get the time? Who knows. I've just spend about a day adding README-SAMPLES.md for you. I've answered lots of your questions. I released Exiv2 v0.27.2-RC1 last week and want to ship v0.27.2-RC2 by the end of next week (before I go on vacation).

The good news is that I several very good engineers working with me on Exiv2. None-the-less, resources are always limited and there is no schedule for this to be implemented.

The Team is busy. We have a substantial refactoring project (Exiv2 v0.28 in C++11). We have a program of quarterly "dot" releases for v0.27. These are security fixes and minor bug fixes. And there's on-going support for users. It's a lot for 3 volunteers and a few friends and occasional contributors.

Then there's the Linux Security people reporting important matters which deserve high priority, and jerks spamming the forum, mounting DNoS attacks on our web-site, and trying to hack into our servers. And guess who has to fix most of this?

HowOpenSourceWorks

clanmills commented 5 years ago

Oh, and I have other things to do. I started learning the Euphonium last September and have joined a local brass band.

DSC_9217

clanmills commented 5 years ago

And I like to run. I went to Normandy last weekend to run in the D-Day Marathon. IMG_3714

clanmills commented 5 years ago

And the garden. img_3686

tester0077 commented 5 years ago

I understand all too well; my todo list keeps growing by the day. Beautiful pictures :-)