Blame README-SAMPLES.md

Packit 01d647
![Exiv2](exiv2.png)
Packit 01d647
Packit 01d647
# Exiv2 Sample Applications
Packit 01d647
Packit 01d647
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 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
### Sample Programs
Packit 01d647
Packit 01d647
| Name | Purpose | More information | Code |
Packit 01d647
|:---  |:---  |:---              |:-- |
Packit 01d647
| _**addmoddel**_   | Demonstrates Exiv2 library APIs to add, modify or delete metadata | [addmoddel](#addmoddel) | [addmoddel.cpp](samples/addmoddel.cpp) |
Packit 01d647
| _**exifcomment**_ | Set Exif.Photo.UserComment in an image  | [exifcomment](#exifcomment) | [exifcomment.cpp](samples/exifcomment.cpp) |
Packit 01d647
| _**exifdata**_    | Prints _**Exif**_ metadata in different formats in an image | [exifdata](#exifdata) | [exifdata.cpp](samples/exifdata.cpp) |
Packit 01d647
| _**exifprint**_   | Print _**Exif**_ metadata in images
Miscelleous other features | [exifprint](#exifprint)| [exifprint.cpp](samples/exifprint.cpp) |
Packit 01d647
| _**exifvalue**_   | Prints the value of a single _**Exif**_ tag in a file | [exifvalue](#exifvalue) | [exifvalue.cpp](samples/exifvalue.cpp) |
Packit 01d647
| _**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 01d647
| _**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 01d647
| _**geotag**_      | Reads GPX data and updates images with GPS Tags | [geotag](#geotag) | [geotag.cpp](samples/geotag.cpp) |
Packit 01d647
| _**iptceasy**_    | Demonstrates read, set or modify IPTC metadata | [iptceasy](#iptceasy) | [iptceasy.cpp](samples/iptceasy.cpp) |
Packit 01d647
| _**iptcprint**_   | Demonstrates Exiv2 library APIs to print Iptc data | [iptceasy](#iptceasy) | [iptcprint.cpp](samples/iptcprint.cpp) |
Packit 01d647
| _**metacopy**_    | Demonstrates copying metadata from one image to another | [metacopy](#metacopy) | [metacopy.cpp](samples/metacopy.cpp) |
Packit 01d647
| _**mrwthumb**_    | Sample program to extract a Minolta thumbnail from the makernote | [mrwthumb](#mrwthumb) | [mrwthumb.cpp](samples/mrwthumb.cpp) |
Packit 01d647
| _**xmpparse**_    | Read an XMP packet from a file, parse it and print all (known) properties. | [xmpparse](#xmpparse) | [xmpparse.cpp](samples/xmpparse.cpp) |
Packit 01d647
| _**xmpprint**_    | Read an XMP from a file, parse it and print all (known) properties.. | [xmpprint](#xmpprint) | [xmpprint.cpp](samples/xmpprint.cpp) |
Packit 01d647
| _**xmpsample**_   | Demonstrates Exiv2 library high level XMP classes | [xmpsample](#xmpsample) | [xmpsample.cpp](samples/exmpsample.cpp) |
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
### Test Programs
Packit 01d647
Packit 01d647
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 01d647
Packit 01d647
| Name | Kind | More information |
Packit 01d647
|:---  |:---  |:---              |
Packit 01d647
| _**conntest**_ | Test http/https/ftp/ssh/sftp connection | [conntest](#conntest) |
Packit 01d647
| _**convert-test**_ | Conversion test driver | [convert-test](#convert-test) |
Packit 01d647
| _**easyaccess-test**_ | Sample program using high-level metadata access functions | [easyaccess-test](#easyaccess-test) |
Packit 01d647
| _**getopt-test**_ | Sample program to test getopt() | [getopt-test](#getopt-test) |
Packit 01d647
| _**ini-test**_ | Shows simple usage of the INIReader class | [ini-test](#ini-test) |
Packit 01d647
| _**iotest**_ | Test programs for BasicIo functions. | [iotest](#iotest) |
Packit 01d647
| _**iptctest**_ | Sample program test Iptc reading and writing. | [iptctest](#iptctest) |
Packit 01d647
| _**key-test**_ | Key unit tests | [key-test](#key-test) |
Packit 01d647
| _**largeiptc-test**_ | Test for large (>65535 bytes) IPTC buffer | [largeiptc-test](#largeiptc-test) |
Packit 01d647
| _**mmap-test**_ | Simple mmap tests | [mmap-test](#mmap-test) |
Packit 01d647
| _**path-test**_ | Test path IO | [path-test](#path-test) |
Packit 01d647
| _**prevtest**_ | Test access to preview images | [prevtest](#prevtest) |
Packit 01d647
| _**remotetest**_ | Tester application for testing remote i/o. | [remotetest](#remotetest) |
Packit 01d647
| _**stringto-test**_ | Test conversions from string to long, float and Rational types. | [stringto-test](#stringto-test) |
Packit 01d647
| _**taglist**_ | Print a simple comma separated list of tags defined in Exiv2 | [taglist](#taglist) |
Packit 01d647
| _**tiff-test**_ | Simple TIFF write test | [tiff-test](#tiff-test) |
Packit 01d647
| _**werror-test**_ | Simple tests for the wide-string error class WError | [werror-test](#werror-test) |
Packit 01d647
| _**write-test**_ | ExifData write unit tests | [write-test](#write-test) |
Packit 01d647
| _**write2-test**_ | ExifData write unit tests for Exif data created from scratch | [write2-test](#write2-test) |
Packit 01d647
| _**xmpdump**_ | Sample program to dump the XMP packet of an image | [xmpdump](#xmpdump) |
Packit 01d647
| _**xmpparser-test**_ | Read an XMP packet from a file, parse and re-serialize it. | [xmpparser-test](#xmpparser-test) |
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
## 2 Sample Program Descriptions
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### addmoddel
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: addmoddel file
Packit 01d647
```
Packit 01d647
Packit 01d647
Demonstrates Exiv2 library APIs to add, modify or delete metadata.  _Code: [addmoddel.cpp](samples/addmoddel.cpp)_
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### exifcomment
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: exifcomment file
Packit 01d647
```
Packit 01d647
Packit 01d647
This is a simple program that demonstrates how to set _**Exif.Photo.UserComment**_ in an image. _Code: [exifcomment.cpp](samples/exifcomment.cpp)_
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
### exifdata
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: exifdata file format
Packit 01d647
formats: csv | json | wolf | xml
Packit 01d647
```
Packit 01d647
Packit 01d647
This is a simple program to demonstrate dumping _**Exif**_ metadata in common formats.  _Code: [exifdata.cpp](samples/exifdata.cpp)_
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### exifprint
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: exifprint [ file | --version | --version-test ]
Packit 01d647
```
Packit 01d647
Packit 01d647
| Arguments | Description |
Packit 01d647
|:--        |:---  |
Packit 01d647
| file    | Path to image |
Packit 01d647
| --version     | Print version information from build |
Packit 01d647
| --version-test   | Tests Exiv2 VERSION API |
Packit 01d647
Packit 01d647
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 01d647
Packit 01d647
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 01d647
Packit 01d647
_Code: [exifprint.cpp](samples/exifprint.cpp)_
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### exifvalue
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: exifvalue file tag
Packit 01d647
```
Packit 01d647
Prints the value of a single _**Exif**_ tag in a file. _Code: [exifvalue.cpp](samples/exifvalue.cpp)_
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### exiv2json
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: exiv2json [-option] file
Packit 01d647
Option: all | exif | iptc | xmp | filesystem
Packit 01d647
```
Packit 01d647
| Arguments | Description |
Packit 01d647
|:--        |:---  |
Packit 01d647
| all      | All metadata |
Packit 01d647
| filesystem    | Filesystem metadata |
Packit 01d647
| exif     | Exif metadata |
Packit 01d647
| iptc     | Iptc metadata |
Packit 01d647
| xmp      | Xmp metadata |
Packit 01d647
| file   | path to image |
Packit 01d647
Packit 01d647
This program dumps metadata from an image in JSON format. _Code: [exiv2json.cpp](samples/exiv2json.cpp)_
Packit 01d647
Packit 01d647
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 01d647
Packit 01d647
```
Packit 01d647
$ exiv2 -px ~/Stonehenge.jpg
Packit 01d647
Xmp.xmp.Rating                               XmpText     1  0
Packit 01d647
Xmp.xmp.ModifyDate                           XmpText    25  2015-07-16T20:25:28+01:00
Packit 01d647
Xmp.dc.description                           LangAlt     1  lang="x-default" Classic View
Packit 01d647
```
Packit 01d647
Packit 01d647
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 01d647
Packit 01d647
```
Packit 01d647
$ exiv2json -xmp http://clanmills.com/Stonehenge.jpg
Packit 01d647
{
Packit 01d647
  "Xmp": {
Packit 01d647
    "xmp": {
Packit 01d647
      "Rating": "0",
Packit 01d647
      "ModifyDate": "2015-07-16T20:25:28+01:00"
Packit 01d647
    },
Packit 01d647
    "dc": {
Packit 01d647
      "description": {
Packit 01d647
        "lang": {
Packit 01d647
          "x-default": "Classic View"
Packit 01d647
        }
Packit 01d647
      }
Packit 01d647
    },
Packit 01d647
    "xmlns": {
Packit 01d647
      "dc": "http:\/\/purl.org\/dc\/elements\/1.1\/",
Packit 01d647
      "xmp": "http:\/\/ns.adobe.com\/xap\/1.0\/"
Packit 01d647
    }
Packit 01d647
  }
Packit 01d647
}
Packit 01d647
$
Packit 01d647
```
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### geotag
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: geotag {-help|-version|-dst|-dryrun|-ascii|-verbose|-adjust value|-tz value|-delta value}+ path+
Packit 01d647
```
Packit 01d647
Packit 01d647
Geotag reads one or more GPX files and adds GPS Tages to images.  _Code: [geotag.cpp](samples/geotag.cpp)_
Packit 01d647
Packit 01d647
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 01d647
Packit 01d647
| Arguments | Description |
Packit 01d647
|:--        |:---  |
Packit 01d647
| -ascii    | Output in ascii (not UTF8).  Prints `deg` instead of °. |
Packit 01d647
| -dst      | Apply 1 hour adjustment for daylight saving time. |
Packit 01d647
| -dryrun   | Read arguments and print report.  Does not modify images. |
Packit 01d647
| -verbose  | Report progress. |
Packit 01d647
| -adjust  value | Add/subtract time from image data. |
Packit 01d647
| -tz      value | Specify time zone. For example PST = -8:00 |
Packit 01d647
| -delta   value | Correction between Image DataTime and GPS time. |
Packit 01d647
Packit 01d647
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 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### iptceasy
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: iptceasy file
Packit 01d647
Reads and writes raw metadata. Use -h option for help.
Packit 01d647
```
Packit 01d647
Packit 01d647
Demonstrates read, set or modify IPTC metadata. _Code: [iptceasy.cpp](samples/iptceasy.cpp)_
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### iptcprint
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: iptcprint file
Packit 01d647
Reads and writes raw metadata. Use -h option for help.
Packit 01d647
```
Packit 01d647
Packit 01d647
Demonstrates Exiv2 library APIs to print Iptc data. _Code: [iptcprint.cpp](samples/iptcprint.cpp)_
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### metacopy
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: metacopy [-iecaph] readfile writefile
Packit 01d647
Reads and writes raw metadata. Use -h option for help.
Packit 01d647
```
Packit 01d647
Packit 01d647
Metacopy is used to copy a complete metadata block from one file to another.  _Code: [metacopy.cpp](samples/metacopy.cpp)_
Packit 01d647
Packit 01d647
Please note that some metadata such as Exif.Photo.PixelXDimension is considered to be part of the image and will not be copied.
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### mrwthumb
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: mrwthumb file
Packit 01d647
```
Packit 01d647
Packit 01d647
Sample program to extract a Minolta thumbnail from the makernote. _Code: [mrwthumb.cpp](samples/mrwthumb.cpp)_
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### xmpparse
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: xmpparse file
Packit 01d647
```
Packit 01d647
Packit 01d647
Read an XMP packet from a file, parse it and print all (known) properties.  _Code: [xmpparse.cpp](samples/xmpparse.cpp)_
Packit 01d647
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### xmpprint
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: xmpprint file
Packit 01d647
```
Packit 01d647
Packit 01d647
Read an XMP from a file, parse it and print all (known) properties. _Code: [xmpprint.cpp](samples/xmpprint.cpp)_
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### xmpsample
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: xmpsample file
Packit 01d647
```
Packit 01d647
Packit 01d647
Demonstrates Exiv2 library high level XMP classes.  _Code: [xmpsample.cpp](samples/xmpsample.cpp)_
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
## 3 Test Program Descriptions
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### conntest
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: conntest url {-http1_0}
Packit 01d647
```
Packit 01d647
Packit 01d647
Test http/https/ftp/ssh/sftp connection
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### convert-test
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: convert-test file
Packit 01d647
```
Packit 01d647
Packit 01d647
Conversion test driver
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### easyaccess-test
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: easyaccess-test file
Packit 01d647
```
Packit 01d647
Packit 01d647
Sample program using high-level metadata access functions
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### getopt-test
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: getopt-test
Packit 01d647
```
Packit 01d647
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 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### ini-test
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: ini-test
Packit 01d647
```
Packit 01d647
Packit 01d647
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 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### iotest
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: iotest filein fileout1 fileout2
Packit 01d647
fileouts are overwritten and should match filein exactly
Packit 01d647
```
Packit 01d647
Packit 01d647
Test programs for BasicIo functions.
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### iptctest
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: iptctest image
Packit 01d647
Commands read from stdin.
Packit 01d647
```
Packit 01d647
Packit 01d647
Sample program test Iptc reading and writing.
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### key-test
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: key-test
Packit 01d647
```
Packit 01d647
Packit 01d647
Key unit tests
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### largeiptc-test
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: largeiptc-test image datafile
Packit 01d647
```
Packit 01d647
Packit 01d647
Test for large (>65535 bytes) IPTC buffer
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### mmap-test
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: mmap-test file
Packit 01d647
```
Packit 01d647
Packit 01d647
Simple mmap tests
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### path-test
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: path-test file
Packit 01d647
```
Packit 01d647
Packit 01d647
Test path IO
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### prevtest
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: prevtest file
Packit 01d647
```
Packit 01d647
Packit 01d647
Test access to preview images
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### remotetest
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: remotetest remotetest file {--nocurl | --curl}
Packit 01d647
```
Packit 01d647
Packit 01d647
Tester application for testing remote i/o.
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### stringto-test
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: stringto-test
Packit 01d647
```
Packit 01d647
Packit 01d647
Test conversions from string to long, float and Rational types.
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### taglist
Packit 01d647
Packit 01d647
```
Packit 01d647
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 01d647
Print Exif tags, MakerNote tags, or Iptc datasets
Packit 01d647
```
Packit 01d647
Packit 01d647
Print a simple comma separated list of tags defined in Exiv2
Packit 01d647
Packit 01d647
This program encodes the library's tag definitions in ascii.
Packit 01d647
The data from this program is formatted as HTML on the web-site.  https://exiv2.org/metadata.html
Packit 01d647
Packit 01d647
For example, to show the binary definition of Group `Nikon3`:
Packit 01d647
Packit 01d647
```
Packit 01d647
1516 rmills@rmillsmbp:~/gnu/github/exiv2/0.27-maintenance $ taglist Nikon3
Packit 01d647
Version,    1,  0x0001, Nikon3, Exif.Nikon3.Version,    Undefined,  Nikon Makernote version
Packit 01d647
ISOSpeed,   2,  0x0002, Nikon3, Exif.Nikon3.ISOSpeed,   Short,  ISO speed setting
Packit 01d647
ColorMode,  3,  0x0003, Nikon3, Exif.Nikon3.ColorMode,  Ascii,  Color mode
Packit 01d647
Quality,    4,  0x0004, Nikon3, Exif.Nikon3.Quality,    Ascii,  Image quality setting
Packit 01d647
WhiteBalance,   5,  0x0005, Nikon3, Exif.Nikon3.WhiteBalance,   Ascii,  White balance
Packit 01d647
Sharpening, 6,  0x0006, Nikon3, Exif.Nikon3.Sharpening, Ascii,  Image sharpening setting
Packit 01d647
Focus,  7,  0x0007, Nikon3, Exif.Nikon3.Focus,  Ascii,  Focus mode
Packit 01d647
FlashSetting,   8,  0x0008, Nikon3, Exif.Nikon3.FlashSetting,   Ascii,  Flash setting
Packit 01d647
FlashDevice,    9,  0x0009, Nikon3, Exif.Nikon3.FlashDevice,    Ascii,  Flash device
Packit 01d647
...
Packit 01d647
```
Packit 01d647
Packit 01d647
We can see those tags being used:
Packit 01d647
Packit 01d647
```
Packit 01d647
$ exiv2 -pa --grep Nikon3 http://clanmills.com/Stonehenge.jpg
Packit 01d647
1519 rmills@rmillsmbp:~/gnu/github/exiv2/0.27-maintenance $ exiv2 -pa --grep Nikon3 http://clanmills.com/Stonehenge.jpg
Packit 01d647
Exif.Nikon3.Version                          Undefined   4  2.11
Packit 01d647
Exif.Nikon3.ISOSpeed                         Short       2  200
Packit 01d647
1520 rmills@rmillsmbp:~/gnu/github/exiv2/0.27-maintenance $
Packit 01d647
...
Packit 01d647
```
Packit 01d647
Packit 01d647
This information is formatted (search Nikon (format 3) MakerNote Tags): [https://exiv2.org/tags-nikon.html](https://exiv2.org/tags-nikon.html)
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### tiff-test
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: tiff-test file
Packit 01d647
```
Packit 01d647
Packit 01d647
Simple TIFF write test
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### werror-test
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: werror-test
Packit 01d647
```
Packit 01d647
Packit 01d647
Simple tests for the wide-string error class WError
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### write-test
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: write-test file case
Packit 01d647
where case is an integer between 1 and 11
Packit 01d647
```
Packit 01d647
Packit 01d647
ExifData write unit tests
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### write2-test
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: write2-test file
Packit 01d647
```
Packit 01d647
Packit 01d647
ExifData write unit tests for Exif data created from scratch
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### xmpdump
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: xmpdump file
Packit 01d647
```
Packit 01d647
Packit 01d647
Sample program to dump the XMP packet of an image
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
#### xmpparser-test
Packit 01d647
Packit 01d647
```
Packit 01d647
Usage: xmpparser-test file
Packit 01d647
```
Packit 01d647
Packit 01d647
Read an XMP packet from a file, parse and re-serialize it.
Packit 01d647
Packit 01d647
[Sample](#TOC1) Programs [Test](#TOC2) Programs
Packit 01d647
Packit 01d647
Packit 01d647
Packit 01d647
Robin Mills
Packit 01d647
robin@clanmills.com
Packit 01d647
Revised: 2019-06-20