diff --git a/README-SAMPLES.md b/README-SAMPLES.md index 28a5e6f1..3430720b 100644 --- a/README-SAMPLES.md +++ b/README-SAMPLES.md @@ -23,7 +23,7 @@ The following programs are build and installed in /usr/local/bin. | _**exifdata**_ | Prints _**Exif**_ metadata in different formats in an image | [exifdata](#exifdata) | [exifdata.cpp](samples/exifdata.cpp) | | _**exifprint**_ | Print _**Exif**_ metadata in images
Miscelleous other features | [exifprint](#exifprint)| [exifprint.cpp](samples/exifprint.cpp) | | _**exifvalue**_ | Prints the value of a single _**Exif**_ tag in a file | [exifvalue](#exifvalue) | [exifvalue.cpp](samples/exifvalue.cpp) | -| _**exiv2**_ | Command line utility to read, write, delete and modify Exif, IPTC, XMP and ICC image metadata.
This is the primary test tool used by Team Exiv2 and can exercise almost all code in the library. Due to the extensive capability of this utility, the APIs used are usually less obvious for casual code inspection. | [https://exiv2.org/manpage.html](https://exiv2.org/manpage.html)
[https://exiv2.org/sample.html](https://exiv2.org/sample.html) | | +| _**exiv2**_ | Utility to read and write image metadata, including Exif, IPTC, XMP, image comments, ICC Profile, thumbnails, image previews and many vendor makernote tags.
This is the primary test tool used by Team Exiv2 and can exercise almost all code in the library. Due to the extensive capability of this utility, the APIs used are usually less obvious for casual code inspection. | [exiv2 manpage](exiv2.md)
[https://exiv2.org/sample.html](https://exiv2.org/sample.html) | | | _**exiv2json**_ | Extracts data from image in JSON format.
This program also contains a parser to recursively parse Xmp metadata into vectors and objects. | [exiv2json](#exiv2json) | [exiv2json.cpp](samples/exiv2json.cpp) | | _**geotag**_ | Reads GPX data and updates images with GPS Tags | [geotag](#geotag) | [geotag.cpp](samples/geotag.cpp) | | _**iptceasy**_ | Demonstrates read, set or modify IPTC metadata | [iptceasy](#iptceasy) | [iptceasy.cpp](samples/iptceasy.cpp) | @@ -162,16 +162,20 @@ Option: all | exif | iptc | xmp | filesystem This program dumps metadata from an image in JSON format. _Code: [exiv2json.cpp](samples/exiv2json.cpp)_ -exiv2json has a recursive parser to encode XMP into Vectors and Objects. XMP data is XMP and can contain XMP `Bag` and `Seq` which are converted to JSON Objects and Arrays. Exiv2 presents data in the format: Family.Group.Tag. For XMP, results in "flat" output such such as: +exiv2json has a recursive parser to encode XMP into Vectors and Objects. XMP data is XMP and can contain XMP `Bag` and `Seq` which are converted to JSON Objects and Arrays. Exiv2 presents data in the format: [Family.Group.Tagname](exiv2.md#exiv2_key_syntax). For XMP, results in "flat" output such such as: ``` -$ exiv2 -px ~/Stonehenge.jpg +$ curl --silent -O https://clanmills.com/Stonehenge.jpg +$ exiv2 --print x Stonehenge.jpg Xmp.xmp.Rating XmpText 1 0 Xmp.xmp.ModifyDate XmpText 25 2015-07-16T20:25:28+01:00 +Xmp.cm2e.Father XmpText 11 Robin Mills +Xmp.cm2e.Family XmpBag 0 Xmp.dc.description LangAlt 1 lang="x-default" Classic View +Xmp.dc.Family XmpBag 1 Robin ``` -exiv2json parses the Exiv2 'Family.Group.Tag' data and restores the structure of the original data in JSON. _Code: [exiv2json.cpp](samples/exiv2json.cpp)_ +exiv2json parses the Exiv2 [Family.Group.Tagname](exiv2.md#exiv2_key_syntax) data and restores the structure of the original data in JSON. _Code: [exiv2json.cpp](samples/exiv2json.cpp)_ ``` $ exiv2json -xmp http://clanmills.com/Stonehenge.jpg @@ -532,7 +536,8 @@ FlashDevice, 9, 0x0009, Nikon3, Exif.Nikon3.FlashDevice, Ascii, Flash de We can see those tags being used: ``` -$ exiv2 -pa --grep Nikon3 http://clanmills.com/Stonehenge.jpg +$ curl --silent -O https://clanmills.com/Stonehenge.jpg +$ exiv2 --print a --grep Nikon3 Stonehenge.jpg Exif.Nikon3.Version Undefined 4 2.11 Exif.Nikon3.ISOSpeed Short 2 200 ... @@ -542,7 +547,7 @@ This information is formatted (search Nikon (format 3) MakerNote Tags): [https:/ #### taglist all -These options are provided to list every Exif tag known to Exiv2. The option `all` prints Group.Name for every tag. The option `ALL` print Group.Name followed by the TagInfo for that tag. For example: +These options are provided to list every tag known to Exiv2. The option `all` prints the [Group.Tagnames](exiv2.md#exiv2_key_syntax) for every Exif tag. The option `ALL` prints the [Group.Tagnames](exiv2.md#exiv2_key_syntax) for every Exif tag, followed by the TagInfo for that tag. For example: ```bash $ taglist all | grep ISOSpeed$ @@ -659,4 +664,4 @@ Read an XMP packet from a file, parse and re-serialize it. Robin Mills
robin@clanmills.com
-Revised: 2021-06-23 \ No newline at end of file +Revised: 2021-09-21 \ No newline at end of file diff --git a/README.md b/README.md index f3e9e73e..51282b5e 100644 --- a/README.md +++ b/README.md @@ -197,7 +197,7 @@ See [README-CONAN](README-CONAN.md) for more information. ### Libiconv -The library libiconv is used to perform character set encoding in the tags Exif.Photo.UserComment, Exif.GPSInfo.GPSProcessingMethod and Exif.GPSInfo.GPSAreaInformation. This is documented in the exiv2 man page. +The library libiconv is used to perform character set encoding in the tags Exif.Photo.UserComment, Exif.GPSInfo.GPSProcessingMethod and Exif.GPSInfo.GPSAreaInformation. This is documented in the [exiv2 man page](exiv2.md). CMake will detect libiconv of all UNIX like systems including Linux, macOS, UNIX, Cygwin64 and MinGW/msys2. If you have installed libiconv on your machine, Exiv2 will link and use it. @@ -311,9 +311,9 @@ You must install the build to test localisation. This ensures that the localisa $ env LANG=fr_FR exiv2 # env LANGUAGE=fr_FR exiv2 on Linux! exiv2: Une action doit être spécifié exiv2: Au moins un fichier est nécessaire -Utilisation : exiv2 [ options ] [ action ] fichier ... +Utilisation : exiv2 [ option [ arg ] ]+ [ action ] fichier ... -Manipulation des métadonnées EXIF issues des images. +Image metadata manipulation tool. $ ``` @@ -334,14 +334,14 @@ I edited the following: ```bash #: src/exiv2.cpp:237 -msgid "Manipulate the Exif metadata of images.\n" +msgid "Image metadata manipulation tool.\n" msgstr "" ``` to: ```bash #: src/exiv2.cpp:237 -msgid "Manipulate the Exif metadata of images.\n" +msgid "Image metadata manipulation tool.\n" msgstr "Manipulate image metadata.\n" ``` @@ -362,7 +362,7 @@ $ sudo cp -R po/xy/LC_MESSAGES/exiv2.mo /usr/local/share/locale/xy/LC_MESSAGES $ env LANG=xy exiv2 # env LANGUAGE=xy on Linux! exiv2: An action must be specified exiv2: At least one file is required -Usage: exiv2 [ options ] [ action ] file ... +Usage: exiv2 [ option [ arg ] ]+ [ action ] file ... Manipulate image metadata. <--------- Edited message! $ @@ -717,14 +717,12 @@ You may wish to use wine to execute exiv2 from the command prompt. To do this: [rmills@rmillsmm-fedora build_mingw_fedora]$ wine cmd Microsoft Windows 6.1.7601 -Z:\Home\gnu\github\exiv2\0.27-maintenance\build_mingw_fedora>bin\exiv2 +Z:\Home\gnu\github\exiv2\main\build_mingw_fedora>bin\exiv2 exiv2: An action must be specified exiv2: At least one file is required -Usage: exiv2 [ options ] [ action ] file ... +Usage: exiv2 [ option [ arg ] ]+ [ action ] file ... -Manipulate the Exif metadata of images. - -Z:\Home\gnu\github\exiv2\0.27-maintenance\build_mingw_fedora> +Image metadata manipulation tool. ``` If you have not installed wine, Fedora will offer to install it for you. @@ -1333,5 +1331,5 @@ $ sudo pkg install developer/gcc-7 [TOC](#TOC) -Written by Robin Mills
robin@clanmills.com
Updated: 2021-04-06 +Written by Robin Mills
robin@clanmills.com
Updated: 2021-09-21 diff --git a/man/man1/exiv2.md b/exiv2.md similarity index 90% rename from man/man1/exiv2.md rename to exiv2.md index 50aa46f0..e46610d2 100644 --- a/man/man1/exiv2.md +++ b/exiv2.md @@ -51,14 +51,15 @@ guidelines. 3. [Modifying a value](#mod_value) 4. ['Modify' examples](#mod_examples) 5. ['Modify' command file](#mod_cmd_file) -12. [CONFIGURATION FILE](#config_file) -13. [EXAMPLES](#examples) -14. [ENVIRONMENT](#environment) -15. [NOTES](#notes) -16. [BUGS](#bugs) -17. [COPYRIGHT](#copyright) -18. [AUTHORS](#authors) -19. [SEE ALSO](#see_also) +12. [CONFIGURATION FILE](#config_file) +13. [EXAMPLES](#examples) +14. [RETURN VALUE](#return_value) +15. [ENVIRONMENT](#environment) +16. [NOTES](#notes) +17. [BUGS](#bugs) +18. [COPYRIGHT](#copyright) +19. [AUTHORS](#authors) +20. [SEE ALSO](#see_also)
@@ -99,21 +100,21 @@ TIFF | Read/Write | Read/Write | Read/Write | - | Read/Write | Rea WEBP | Read/Write | - | Read/Write | - | Read/Write | Read/Write XMP | - |- | Read/Write | - | - | - -+ Support for GIF, TGA and BMP images is minimal: the image format is +- Support for GIF, TGA and BMP images is minimal: the image format is recognized, a MIME type assigned to it and the height and width of the image are determined. -+ Reading other TIFF-like RAW image formats, which are not listed in +- Reading other TIFF-like RAW image formats, which are not listed in the table, may also work. -+ Some image formats allow an extra interal type of metadata. Only +- Some image formats allow an extra interal type of metadata. Only partial support exists for the RAF format. -+ Support for BMFF types such as AVIF, CR3, HEIF and HEIC is a build +- Support for BMFF types such as AVIF, CR3, HEIF and HEIC is a build option. To check if this is enabled, use `exiv2 --version --verbose --grep bmff` and see if `enable_bmff=1`. -+ Naked codestream JXL files do not contain Exif, IPTC or XMP metadata. +- Naked codestream JXL files do not contain Exif, IPTC or XMP metadata. [TOC](#TOC) @@ -247,7 +248,7 @@ The arguments for those options are: | *arg* | Description | |:------ |:---- | | *action* | pr \| ex \| in \| rm \| ad \| mo \| mv \| fi \| fc
(print, extract, insert, delete, adjust, modify, rename, fixiso, fixcom) | -| *cmd* | (**set** \| **add**) *key* [[*type*] *value*] \| **del** *key* [*type*] \| **reg** *prefix* *namespace*
(see ['Modify' command format](#mod_cmd_format)) | +| *cmd* | (**set** \| **add**) *key* [ [*type*] *value* ] \| **del** *key* [*type*] \| **reg** *prefix* *namespace*
(see ['Modify' command format](#mod_cmd_format)) | | *enc* | Values defined in [iconv_open(3)](https://linux.die.net/man/3/iconv_open) (e.g., UTF-8) | | *flg* | E \| I \| X \| x \| g \| k \| l \| n \| y \| c \| s \| v \| t \| h
(Exif, IPTC, XMP, num, grp, key, label, name, type, count, size, vanilla, translated, hex) | | *fmt* | Default format: %Y%m%d_%H%M%S | @@ -523,18 +524,18 @@ the [adjust](#ad_adjust) action. See [TZ environment variable](#TZ). ### **-p** *mod*, **--print** *mod* Print mode for the [print](#pr_print) action (see [DESCRIPTION](#file_types), for metadata support in a file type). -Possible modes are: +Where *mod* is one of: | Option | Description | |:------ |:---- | | s | A summary of the Exif metadata (the default for the [print](#pr_print) action) | | a | Exif, IPTC and XMP tags (shortcut for [--Print kyct](#Print_flgs)) | -| e | Exif tags (shortcut for [--Print Ekycv](#Print_flgs)) | +| e | Plain (untranslated) Exif tags (shortcut for [--Print Ekycv](#Print_flgs)) | | t | Interpreted (translated) Exif tag values (shortcut for [--Print Ekyct](#Print_flgs)) | | v | Plain (untranslated) Exif tag values (shortcut for [--Print Exgnycv](#Print_flgs)) | | h | Hex dump of the Exif data (shortcut for [--Print Exgnycsh](#Print_flgs)) | -| i | IPTC tags (shortcut for [--Print Ikyct](#Print_flgs)) | -| x | XMP tags (shortcut for [--Print Xkyct](#Print_flgs)) | +| i | Translated IPTC tags (shortcut for [--Print Ikyct](#Print_flgs)) | +| x | Translated XMP tags (shortcut for [--Print Xkyct](#Print_flgs)) | | c | JPEG comment (see [IMAGE COMMENTS](#image_comments)) | | p | List available image previews, sorted by size in pixels (see [PREVIEW IMAGES AND THUMBNAILS](#preview_images)) | | C | Image ICC Profile (see [ICC PROFILES](#icc_profiles)) | @@ -571,25 +572,26 @@ as well as data columns included in the print output. Valid flags are: | s | Size in bytes of vanilla output (see note in [Exif 'Comment' values](#exif_comment_values)). Some types include a *NULL* character in the size (see [Exif/IPTC/XMP types](#exiv2_types)) | | v | Plain data value (vanilla values, i.e., untranslated) | | V | Plain data value and the word 'set ' (see ['MODIFY' COMMANDS](#modify_cmds))| -| t | Interpreted (translated) human-readable data values | +| t | Interpreted (translated) human-readable data values (includes plain vanilla values) | | h | Hex dump of the data |