|
Packit Service |
21b5d1 |
![Exiv2](exiv2.png)
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
# Exiv2 Sample Applications
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Exiv2 is a C++ library and a command line utility to read, write, delete and modify Exif, IPTC, XMP and ICC image metadata. Exiv2 also features a collection of sample and test command-line programs. Please be aware that while the program _**exiv2**_ enjoys full support from Team Exiv2, the other programs have been written for test, documentation or development purposes. You are expected to read the code to discover the specification of programs other than _**exiv2**_.
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
### Sample Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
| Name | Purpose | More information | Code |
|
|
Packit Service |
21b5d1 |
|:--- |:--- |:--- |:-- |
|
|
Packit Service |
21b5d1 |
| _**addmoddel**_ | Demonstrates Exiv2 library APIs to add, modify or delete metadata | [addmoddel](#addmoddel) | [addmoddel.cpp](samples/addmoddel.cpp) |
|
|
Packit Service |
21b5d1 |
| _**exifcomment**_ | Set Exif.Photo.UserComment in an image | [exifcomment](#exifcomment) | [exifcomment.cpp](samples/exifcomment.cpp) |
|
|
Packit Service |
21b5d1 |
| _**exifdata**_ | Prints _**Exif**_ metadata in different formats in an image | [exifdata](#exifdata) | [exifdata.cpp](samples/exifdata.cpp) |
|
|
Packit Service |
21b5d1 |
| _**exifprint**_ | Print _**Exif**_ metadata in images Miscelleous other features | [exifprint](#exifprint)| [exifprint.cpp](samples/exifprint.cpp) |
|
|
Packit Service |
21b5d1 |
| _**exifvalue**_ | Prints the value of a single _**Exif**_ tag in a file | [exifvalue](#exifvalue) | [exifvalue.cpp](samples/exifvalue.cpp) |
|
|
Packit Service |
21b5d1 |
| _**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) | |
|
|
Packit Service |
21b5d1 |
| _**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) |
|
|
Packit Service |
21b5d1 |
| _**geotag**_ | Reads GPX data and updates images with GPS Tags | [geotag](#geotag) | [geotag.cpp](samples/geotag.cpp) |
|
|
Packit Service |
21b5d1 |
| _**iptceasy**_ | Demonstrates read, set or modify IPTC metadata | [iptceasy](#iptceasy) | [iptceasy.cpp](samples/iptceasy.cpp) |
|
|
Packit Service |
21b5d1 |
| _**iptcprint**_ | Demonstrates Exiv2 library APIs to print Iptc data | [iptceasy](#iptceasy) | [iptcprint.cpp](samples/iptcprint.cpp) |
|
|
Packit Service |
21b5d1 |
| _**metacopy**_ | Demonstrates copying metadata from one image to another | [metacopy](#metacopy) | [metacopy.cpp](samples/metacopy.cpp) |
|
|
Packit Service |
21b5d1 |
| _**mrwthumb**_ | Sample program to extract a Minolta thumbnail from the makernote | [mrwthumb](#mrwthumb) | [mrwthumb.cpp](samples/mrwthumb.cpp) |
|
|
Packit Service |
21b5d1 |
| _**xmpparse**_ | Read an XMP packet from a file, parse it and print all (known) properties. | [xmpparse](#xmpparse) | [xmpparse.cpp](samples/xmpparse.cpp) |
|
|
Packit Service |
21b5d1 |
| _**xmpprint**_ | Read an XMP from a file, parse it and print all (known) properties.. | [xmpprint](#xmpprint) | [xmpprint.cpp](samples/xmpprint.cpp) |
|
|
Packit Service |
21b5d1 |
| _**xmpsample**_ | Demonstrates Exiv2 library high level XMP classes | [xmpsample](#xmpsample) | [xmpsample.cpp](samples/exmpsample.cpp) |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
### Test Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
As Exiv2 is open source, we publish all our materials. Some of the following programs are actively used in our test harness. Some of the following programs were written during the development of features and their on-going use may be limited, or even obsolete. In general these programs are published as source and Team Exiv2 will not provide support to users.
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
| Name | Kind | More information |
|
|
Packit Service |
21b5d1 |
|:--- |:--- |:--- |
|
|
Packit Service |
21b5d1 |
| _**conntest**_ | Test http/https/ftp/ssh/sftp connection | [conntest](#conntest) |
|
|
Packit Service |
21b5d1 |
| _**convert-test**_ | Conversion test driver | [convert-test](#convert-test) |
|
|
Packit Service |
21b5d1 |
| _**easyaccess-test**_ | Sample program using high-level metadata access functions | [easyaccess-test](#easyaccess-test) |
|
|
Packit Service |
21b5d1 |
| _**getopt-test**_ | Sample program to test getopt() | [getopt-test](#getopt-test) |
|
|
Packit Service |
21b5d1 |
| _**ini-test**_ | Shows simple usage of the INIReader class | [ini-test](#ini-test) |
|
|
Packit Service |
21b5d1 |
| _**iotest**_ | Test programs for BasicIo functions. | [iotest](#iotest) |
|
|
Packit Service |
21b5d1 |
| _**iptctest**_ | Sample program test Iptc reading and writing. | [iptctest](#iptctest) |
|
|
Packit Service |
21b5d1 |
| _**key-test**_ | Key unit tests | [key-test](#key-test) |
|
|
Packit Service |
21b5d1 |
| _**largeiptc-test**_ | Test for large (>65535 bytes) IPTC buffer | [largeiptc-test](#largeiptc-test) |
|
|
Packit Service |
21b5d1 |
| _**mmap-test**_ | Simple mmap tests | [mmap-test](#mmap-test) |
|
|
Packit Service |
21b5d1 |
| _**path-test**_ | Test path IO | [path-test](#path-test) |
|
|
Packit Service |
21b5d1 |
| _**prevtest**_ | Test access to preview images | [prevtest](#prevtest) |
|
|
Packit Service |
21b5d1 |
| _**remotetest**_ | Tester application for testing remote i/o. | [remotetest](#remotetest) |
|
|
Packit Service |
21b5d1 |
| _**stringto-test**_ | Test conversions from string to long, float and Rational types. | [stringto-test](#stringto-test) |
|
|
Packit Service |
21b5d1 |
| _**taglist**_ | Print a simple comma separated list of tags defined in Exiv2 | [taglist](#taglist) |
|
|
Packit Service |
21b5d1 |
| _**tiff-test**_ | Simple TIFF write test | [tiff-test](#tiff-test) |
|
|
Packit Service |
21b5d1 |
| _**werror-test**_ | Simple tests for the wide-string error class WError | [werror-test](#werror-test) |
|
|
Packit Service |
21b5d1 |
| _**write-test**_ | ExifData write unit tests | [write-test](#write-test) |
|
|
Packit Service |
21b5d1 |
| _**write2-test**_ | ExifData write unit tests for Exif data created from scratch | [write2-test](#write2-test) |
|
|
Packit Service |
21b5d1 |
| _**xmpdump**_ | Sample program to dump the XMP packet of an image | [xmpdump](#xmpdump) |
|
|
Packit Service |
21b5d1 |
| _**xmpparser-test**_ | Read an XMP packet from a file, parse and re-serialize it. | [xmpparser-test](#xmpparser-test) |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
## 2 Sample Program Descriptions
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### addmoddel
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: addmoddel file
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Demonstrates Exiv2 library APIs to add, modify or delete metadata. _Code: [addmoddel.cpp](samples/addmoddel.cpp)_
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### exifcomment
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: exifcomment file
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
This is a simple program that demonstrates how to set _**Exif.Photo.UserComment**_ in an image. _Code: [exifcomment.cpp](samples/exifcomment.cpp)_
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
### exifdata
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: exifdata file format
|
|
Packit Service |
21b5d1 |
formats: csv | json | wolf | xml
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
This is a simple program to demonstrate dumping _**Exif**_ metadata in common formats. _Code: [exifdata.cpp](samples/exifdata.cpp)_
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### exifprint
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: exifprint [ file | --version | --version-test ]
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
| Arguments | Description |
|
|
Packit Service |
21b5d1 |
|:-- |:--- |
|
|
Packit Service |
21b5d1 |
| file | Path to image |
|
|
Packit Service |
21b5d1 |
| --version | Print version information from build |
|
|
Packit Service |
21b5d1 |
| --version-test | Tests Exiv2 VERSION API |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
This program demonstrates how to print _**Exif**_ metadata in an image. This program is also discussed in the platform ReadMe.txt file included in a build bundle. The option **--version** was added enable the user to build a test application which dumps the build information. The option **--version-test** was added to test the macro EXIV2\_TEST\_VERSION() in **include/exiv2/version.hpp**.
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
There is one other unique feature of this program. It is the only test/sample program which can use the EXV\_UNICODE\_PATH build feature of Exiv2 on Windows.
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
_Code: [exifprint.cpp](samples/exifprint.cpp)_
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### exifvalue
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: exifvalue file tag
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Prints the value of a single _**Exif**_ tag in a file. _Code: [exifvalue.cpp](samples/exifvalue.cpp)_
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### exiv2json
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: exiv2json [-option] file
|
|
Packit Service |
21b5d1 |
Option: all | exif | iptc | xmp | filesystem
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
| Arguments | Description |
|
|
Packit Service |
21b5d1 |
|:-- |:--- |
|
|
Packit Service |
21b5d1 |
| all | All metadata |
|
|
Packit Service |
21b5d1 |
| filesystem | Filesystem metadata |
|
|
Packit Service |
21b5d1 |
| exif | Exif metadata |
|
|
Packit Service |
21b5d1 |
| iptc | Iptc metadata |
|
|
Packit Service |
21b5d1 |
| xmp | Xmp metadata |
|
|
Packit Service |
21b5d1 |
| file | path to image |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
This program dumps metadata from an image in JSON format. _Code: [exiv2json.cpp](samples/exiv2json.cpp)_
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
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:
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
$ exiv2 -px ~/Stonehenge.jpg
|
|
Packit Service |
21b5d1 |
Xmp.xmp.Rating XmpText 1 0
|
|
Packit Service |
21b5d1 |
Xmp.xmp.ModifyDate XmpText 25 2015-07-16T20:25:28+01:00
|
|
Packit Service |
21b5d1 |
Xmp.dc.description LangAlt 1 lang="x-default" Classic View
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
exiv2json parses the Exiv2 'Family.Group.Tag' data and restores the structure of the original data in JSON. _Code: [exiv2json.cpp](samples/exiv2json.cpp)_
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
$ exiv2json -xmp http://clanmills.com/Stonehenge.jpg
|
|
Packit Service |
21b5d1 |
{
|
|
Packit Service |
21b5d1 |
"Xmp": {
|
|
Packit Service |
21b5d1 |
"xmp": {
|
|
Packit Service |
21b5d1 |
"Rating": "0",
|
|
Packit Service |
21b5d1 |
"ModifyDate": "2015-07-16T20:25:28+01:00"
|
|
Packit Service |
21b5d1 |
},
|
|
Packit Service |
21b5d1 |
"dc": {
|
|
Packit Service |
21b5d1 |
"description": {
|
|
Packit Service |
21b5d1 |
"lang": {
|
|
Packit Service |
21b5d1 |
"x-default": "Classic View"
|
|
Packit Service |
21b5d1 |
}
|
|
Packit Service |
21b5d1 |
}
|
|
Packit Service |
21b5d1 |
},
|
|
Packit Service |
21b5d1 |
"xmlns": {
|
|
Packit Service |
21b5d1 |
"dc": "http:\/\/purl.org\/dc\/elements\/1.1\/",
|
|
Packit Service |
21b5d1 |
"xmp": "http:\/\/ns.adobe.com\/xap\/1.0\/"
|
|
Packit Service |
21b5d1 |
}
|
|
Packit Service |
21b5d1 |
}
|
|
Packit Service |
21b5d1 |
}
|
|
Packit Service |
21b5d1 |
$
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### geotag
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: geotag {-help|-version|-dst|-dryrun|-ascii|-verbose|-adjust value|-tz value|-delta value}+ path+
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Geotag reads one or more GPX files and adds GPS Tages to images. _Code: [geotag.cpp](samples/geotag.cpp)_
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
If the path is a directory, geotag will read all the files in the directory. It constructs a time dictionary of position data, then updates every image with GPS Tags.
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
| Arguments | Description |
|
|
Packit Service |
21b5d1 |
|:-- |:--- |
|
|
Packit Service |
21b5d1 |
| -ascii | Output in ascii (not UTF8). Prints `deg` instead of °. |
|
|
Packit Service |
21b5d1 |
| -dst | Apply 1 hour adjustment for daylight saving time. |
|
|
Packit Service |
21b5d1 |
| -dryrun | Read arguments and print report. Does not modify images. |
|
|
Packit Service |
21b5d1 |
| -verbose | Report progress. |
|
|
Packit Service |
21b5d1 |
| -adjust value | Add/subtract time from image data. |
|
|
Packit Service |
21b5d1 |
| -tz value | Specify time zone. For example PST = -8:00 |
|
|
Packit Service |
21b5d1 |
| -delta value | Correction between Image DataTime and GPS time. |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
I use this program frequently. I have a little Canon camera which I take when I run. My Samsung Galaxy Watch uploads my runs to Strava and I download the GPX. If I'm in another time-zone and have forgotten to change the time setting in the camera, I use `-adjust` to alter the images. The GPX time is always correct, however the camera is normally off by seconds or minutes. This option enables you to correct for inaccuracy in the setting of the camera time.
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### iptceasy
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: iptceasy file
|
|
Packit Service |
21b5d1 |
Reads and writes raw metadata. Use -h option for help.
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Demonstrates read, set or modify IPTC metadata. _Code: [iptceasy.cpp](samples/iptceasy.cpp)_
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### iptcprint
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: iptcprint file
|
|
Packit Service |
21b5d1 |
Reads and writes raw metadata. Use -h option for help.
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Demonstrates Exiv2 library APIs to print Iptc data. _Code: [iptcprint.cpp](samples/iptcprint.cpp)_
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### metacopy
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: metacopy [-iecaph] readfile writefile
|
|
Packit Service |
21b5d1 |
Reads and writes raw metadata. Use -h option for help.
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Metacopy is used to copy a complete metadata block from one file to another. _Code: [metacopy.cpp](samples/metacopy.cpp)_
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Please note that some metadata such as Exif.Photo.PixelXDimension is considered to be part of the image and will not be copied.
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### mrwthumb
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: mrwthumb file
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Sample program to extract a Minolta thumbnail from the makernote. _Code: [mrwthumb.cpp](samples/mrwthumb.cpp)_
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### xmpparse
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: xmpparse file
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Read an XMP packet from a file, parse it and print all (known) properties. _Code: [xmpparse.cpp](samples/xmpparse.cpp)_
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### xmpprint
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: xmpprint file
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Read an XMP from a file, parse it and print all (known) properties. _Code: [xmpprint.cpp](samples/xmpprint.cpp)_
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### xmpsample
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: xmpsample file
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Demonstrates Exiv2 library high level XMP classes. _Code: [xmpsample.cpp](samples/xmpsample.cpp)_
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
## 3 Test Program Descriptions
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### conntest
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: conntest url {-http1_0}
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Test http/https/ftp/ssh/sftp connection
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### convert-test
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: convert-test file
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Conversion test driver
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### easyaccess-test
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: easyaccess-test file
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Sample program using high-level metadata access functions
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### getopt-test
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: getopt-test
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
This program is used to test the function **getopt()**. Prior to Exiv2 v0.27, the sample programs used the platform's C Runtime Library function **getopt()**. Visual Studio builds used code in src/getopt.cpp. Due to differences in the platform **getopt()**, the code in src/getopt.cpp was modified and adopted on every platforms. This test program was added for test and debug purpose. Please note that src/getopt.cpp is compiled and linked into the sample application and is not part of the Exiv2 library.
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### ini-test
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: ini-test
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
This program is used to test reading the file ini-test. This program was added in Exiv2 v0.26 when the ~/.exiv2 file was added to the Exiv2 architecture.
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### iotest
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: iotest filein fileout1 fileout2
|
|
Packit Service |
21b5d1 |
fileouts are overwritten and should match filein exactly
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Test programs for BasicIo functions.
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### iptctest
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: iptctest image
|
|
Packit Service |
21b5d1 |
Commands read from stdin.
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Sample program test Iptc reading and writing.
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### key-test
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: key-test
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Key unit tests
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### largeiptc-test
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: largeiptc-test image datafile
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Test for large (>65535 bytes) IPTC buffer
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### mmap-test
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: mmap-test file
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Simple mmap tests
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### path-test
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: path-test file
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Test path IO
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### prevtest
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: prevtest file
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Test access to preview images
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### remotetest
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: remotetest remotetest file {--nocurl | --curl}
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Tester application for testing remote i/o.
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### stringto-test
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: stringto-test
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Test conversions from string to long, float and Rational types.
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### taglist
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: taglist [--group name|Groups|Exif|Canon|CanonCs|CanonSi|CanonCf|Fujifilm|Minolta|Nikon1|Nikon2|Nikon3|Olympus|Panasonic|Pentax|Sigma|Sony|Iptc|dc|xmp|xmpRights|xmpMM|xmpBJ|xmpTPg|xmpDM|pdf|photoshop|crs|tiff|exif|aux|iptc]
|
|
Packit Service |
21b5d1 |
Print Exif tags, MakerNote tags, or Iptc datasets
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Print a simple comma separated list of tags defined in Exiv2
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
This program encodes the library's tag definitions in ascii.
|
|
Packit Service |
21b5d1 |
The data from this program is formatted as HTML on the web-site. https://exiv2.org/metadata.html
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
For example, to show the binary definition of Group `Nikon3`:
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
1516 rmills@rmillsmbp:~/gnu/github/exiv2/0.27-maintenance $ taglist Nikon3
|
|
Packit Service |
21b5d1 |
Version, 1, 0x0001, Nikon3, Exif.Nikon3.Version, Undefined, Nikon Makernote version
|
|
Packit Service |
21b5d1 |
ISOSpeed, 2, 0x0002, Nikon3, Exif.Nikon3.ISOSpeed, Short, ISO speed setting
|
|
Packit Service |
21b5d1 |
ColorMode, 3, 0x0003, Nikon3, Exif.Nikon3.ColorMode, Ascii, Color mode
|
|
Packit Service |
21b5d1 |
Quality, 4, 0x0004, Nikon3, Exif.Nikon3.Quality, Ascii, Image quality setting
|
|
Packit Service |
21b5d1 |
WhiteBalance, 5, 0x0005, Nikon3, Exif.Nikon3.WhiteBalance, Ascii, White balance
|
|
Packit Service |
21b5d1 |
Sharpening, 6, 0x0006, Nikon3, Exif.Nikon3.Sharpening, Ascii, Image sharpening setting
|
|
Packit Service |
21b5d1 |
Focus, 7, 0x0007, Nikon3, Exif.Nikon3.Focus, Ascii, Focus mode
|
|
Packit Service |
21b5d1 |
FlashSetting, 8, 0x0008, Nikon3, Exif.Nikon3.FlashSetting, Ascii, Flash setting
|
|
Packit Service |
21b5d1 |
FlashDevice, 9, 0x0009, Nikon3, Exif.Nikon3.FlashDevice, Ascii, Flash device
|
|
Packit Service |
21b5d1 |
...
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
We can see those tags being used:
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
$ exiv2 -pa --grep Nikon3 http://clanmills.com/Stonehenge.jpg
|
|
Packit Service |
21b5d1 |
1519 rmills@rmillsmbp:~/gnu/github/exiv2/0.27-maintenance $ exiv2 -pa --grep Nikon3 http://clanmills.com/Stonehenge.jpg
|
|
Packit Service |
21b5d1 |
Exif.Nikon3.Version Undefined 4 2.11
|
|
Packit Service |
21b5d1 |
Exif.Nikon3.ISOSpeed Short 2 200
|
|
Packit Service |
21b5d1 |
1520 rmills@rmillsmbp:~/gnu/github/exiv2/0.27-maintenance $
|
|
Packit Service |
21b5d1 |
...
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
This information is formatted (search Nikon (format 3) MakerNote Tags): [https://exiv2.org/tags-nikon.html](https://exiv2.org/tags-nikon.html)
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### tiff-test
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: tiff-test file
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Simple TIFF write test
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### werror-test
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: werror-test
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Simple tests for the wide-string error class WError
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### write-test
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: write-test file case
|
|
Packit Service |
21b5d1 |
where case is an integer between 1 and 11
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
ExifData write unit tests
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### write2-test
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: write2-test file
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
ExifData write unit tests for Exif data created from scratch
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### xmpdump
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: xmpdump file
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Sample program to dump the XMP packet of an image
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
#### xmpparser-test
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
Usage: xmpparser-test file
|
|
Packit Service |
21b5d1 |
```
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Read an XMP packet from a file, parse and re-serialize it.
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
[Sample](#TOC1) Programs [Test](#TOC2) Programs
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
|
|
Packit Service |
21b5d1 |
Robin Mills
|
|
Packit Service |
21b5d1 |
robin@clanmills.com
|
|
Packit Service |
21b5d1 |
Revised: 2019-06-20
|