Jhead

From Omnia
Revision as of 00:55, 7 July 2014 by Kenneth (talk | contribs) (→‎Install jhead)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

jhead

jhead - Exif Jpeg header manipulation tool - http://www.sentex.net/~mwandel/jhead

"Jhead is a program for manipulating settings and thumbnails in Exif jpeg headers used by most Digital Cameras. v2.97 Matthias Wandel, Jan 30 2013. http://www.sentex.net/~mwandel/jhead" (jhead help page)

Install jhead

Build:

#JVER=2.96
JVER=2.97
mkdir -p ~/.src ; cd ~/.src
wget http://www.sentex.net/~mwandel/jhead/jhead-${JVER}.tar.gz
tar -zvxf jhead-${JVER}.tar.gz
cd jhead-${JVER}
make && make install
#installs 'jhead' to /usr/local/bin/
# sudo mkdir -p /opt/jhead/usr/local/bin
# make clean && make && sudo DESTDIR=/opt/jhead make install

Auto Rotate Image

Lossless auto rotation: (uses jpegtran)

jhead -autorot *JPG

Adjust date and time

Set file modification time to Exif time:

jhead -v -ft *jpg

Set Exif time to file modification time

jhead -v -dsft *jpg

Adjust time by h:mm backwards or forwards:

# -ta<+|->h[:mm[:ss]]
# adjust 8 hours forward
jhead -v -ta+8 -ft *jpg

Adjust date by large amounts:

# -da<date>-<date>
jhead -v -da2011:04:02/14:21:00-2011:01:01/00:00:00 -ft pic/*JPG

help

$ jhead -h
Jhead is a program for manipulating settings and thumbnails in Exif jpeg headers
used by most Digital Cameras.  v2.97 Matthias Wandel, Jan 30 2013.
http://www.sentex.net/~mwandel/jhead

Usage: jhead [options] files
Where:
 files       path/filenames with or without wildcards
[options] are:

GENERAL METADATA:
  -te <name> Transfer exif header from another image file <name>
             Uses same name mangling as '-st' option
  -dc        Delete comment field (as left by progs like Photoshop & Compupic)
  -de        Strip Exif section (smaller JPEG file, but lose digicam info)
  -di        Delete IPTC section (from Photoshop, or Picasa)
  -dx        Deletex XMP section
  -du        Delete non image sections except for Exif and comment sections
  -purejpg   Strip all unnecessary data from jpeg (combines -dc -de and -du)
  -mkexif    Create new minimal exif section (overwrites pre-existing exif)
  -ce        Edit comment field.  Uses environment variable 'editor' to
             determine which editor to use.  If editor not set, uses VI
             under Unix and notepad with windows
  -cs <name> Save comment section to a file
  -ci <name> Insert comment section from a file.  -cs and -ci use same naming
             scheme as used by the -st option
  -cl string Insert literal comment string

DATE / TIME MANIPULATION:
  -ft        Set file modification time to Exif time
  -dsft      Set Exif time to file modification time
  -n[format-string]
             Rename files according to date.  Uses exif date if present, file
             date otherwise.  If the optional format-string is not supplied,
             the format is mmdd-hhmmss.  If a format-string is given, it is
             is passed to the 'strftime' function for formatting
             %d Day of month    %H Hour (24-hour)
             %m Month number    %M Minute    %S Second
             %y Year (2 digit 00 - 99)        %Y Year (4 digit 1980-2036)
             For more arguments, look up the 'strftime' function.
             In addition to strftime format codes:
             '%f' as part of the string will include the original file name
             '%i' will include a sequence number, starting from 1. You can
             You can specify '%03i' for example to get leading zeros.
             This feature is useful for ordering files from multiple digicams to
             sequence of taking.  Only renames files whose names are mostly
             numerical (as assigned by digicam)
             The '.jpg' is automatically added to the end of the name.  If the
             destination name already exists, a letter or digit is added to
             the end of the name to make it unique.
             The new name may include a path as part of the name.  If this path
             does not exist, it will be created
  -a         (Windows only) Rename files with same name but different extension
             Use together with -n to rename .AVI files from exif in .THM files
             for example
  -ta<+|->h[:mm[:ss]]
             Adjust time by h:mm forwards or backwards.  Useful when having
             taken pictures with the wrong time set on the camera, such as when
             traveling across time zones or DST changes. Dates can be adjusted
             by offsetting by 24 hours or more.  For large date adjustments,
             use the -da option
  -da<date>-<date>
             Adjust date by large amounts.  This is used to fix photos from
             cameras where the date got set back to the default camera date
             by accident or battery removal.
             To deal with different months and years having different numbers of
             days, a simple date-month-year offset would result in unexpected
             results.  Instead, the difference is specified as desired date
             minus original date.  Date is specified as yyyy:mm:dd or as date
             and time in the format yyyy:mm:dd/hh:mm:ss
  -ts<time>  Set the Exif internal time to <time>.  <time> is in the format
             yyyy:mm:dd-hh:mm:ss
  -ds<date>  Set the Exif internal date.  <date> is in the format YYYY:MM:DD
             or YYYY:MM or YYYY

THUMBNAIL MANIPULATION:
  -dt        Remove exif integral thumbnails.   Typically trims 10k
  -st <name> Save Exif thumbnail, if there is one, in file <name>
             If output file name contains the substring "&i" then the
             image file name is substitute for the &i.  Note that quotes around
             the argument are required for the '&' to be passed to the program.
             An output name of '-' causes thumbnail to be written to stdout
  -rt <name> Replace Exif thumbnail.  Can only be done with headers that
             already contain a thumbnail.
  -rgt[size] Regnerate exif thumbnail.  Only works if image already
             contains a thumbail.  size specifies maximum height or width of
             thumbnail.  Relies on 'mogrify' programs to be on path

ROTATION TAG MANIPULATION:
  -autorot   Invoke jpegtran to rotate images according to Exif orientation tag
             Note: Windows users must get jpegtran for this to work
  -norot     Zero out the rotation tag.  This to avoid some browsers from
             rotating the image again after you rotated it but neglected to
             clear the rotation tag

OUTPUT VERBOSITY CONTROL:
  -h         help (this text)
  -v         even more verbose output
  -q         Quiet (no messages on success, like Unix)
  -V         Show jhead version
  -exifmap   Dump header bytes, annotate.  Pipe thru sort for better viewing
  -se        Supress error messages relating to corrupt exif header structure
  -c         concise output
  -nofinfo   Don't show file info (name/size/date)

FILE MATCHING AND SELECTION:
  -model model
             Only process files from digicam containing model substring in
             camera model description
  -exonly    Skip all files that don't have an exif header (skip all jpegs that
             were not created by digicam)
  -cmd command
             Apply 'command' to every file, then re-insert exif and command
             sections into the image. &i will be substituted for the input file
             name, and &o (if &o is used). Use quotes around the command string
             This is most useful in conjunction with the free ImageMagick tool.
             For example, with my Canon S100, which suboptimally compresses
             jpegs I can specify
                jhead -cmd "mogrify -quality 80 &i" *.jpg
             to re-compress a lot of images using ImageMagick to half the size,
             and no visible loss of quality while keeping the exif header
             Another invocation I like to use is jpegtran (hard to find for
             windows).  I type:
                jhead -cmd "jpegtran -progressive &i &o" *.jpg
             to convert jpegs to progressive jpegs (Unix jpegtran syntax
             differs slightly)
  -orp       Only operate on 'portrait' aspect ratio images
  -orl       Only operate on 'landscape' aspect ratio images