install_exiftool()
now changes the name of the installed
executable from "exiftool(-k).exe"
to "exiftool.exe"
as recommended for
command-line use by Phil Harvey here:
https://exiftool.org/install.html#Windows. exiftoolr:::configure_exiftoolr()
,
which searches for locally available executables, now searches first for
"exiftool.exe"
and then for "exiftool(-k).exe"
, so that it will still find
ExifTool executables installed by previous versions of this R package. Thanks
to Andy Lyons for suggesting this change, which fixes a problem that plagued
at least some Windows users.install_exiftool()
needed to handle changes in how
Phil Harvey's http://exiftool.org provides Windows ExifTool executables.install_exiftool()
(and its helper function, download_exiftool()
)
to handle a couple of changes in how Phil Harvey's http://exiftool.org
provides Windows ExifTool executables.Ensures that Unicode tags are correctly written to files even in non-Unicode locales. Thanks to Trevor Davis for the excellent, as usual, issue description and PR.
Improves the error message returned to the user when the call to Exiftool
finds no files to act upon. In addition to more gracefully relaying the error
message emitted by Exiftool, such calls now return a value of NULL
. Thanks
to jcblum for reporting this issue.
config_file=
and common_args=
to exif_call()
. These are
passed on to exiftool options -config
and -common_args
respectively,
neither of which was supported here before due to their not being allowed in
the -@ ARGFILE
option used 'behind the scenes' by all calls to
exif_call()
.install_exiftool()
. Formerly, the executable was installed into the
directory returned by system.file("exiftool", package = "exiftoolr")
, which
will not always be writable (as, e.g., when the package is installed by an
admin in the shared library of a multi-user server, and hence is owned by
"root"). Now, the executable is by default installed to the directory given by
backports::R_user_dir()
, which should be more generally writable.Fixes an issue that caused configure_exiftoolr()
(and thus essentially all
exiftoolr functionality) to fail on Windows machines that do not have Perl
installed in a location findable by the exiftoolr:::configure_perl()
. Thanks
to Tom Yamashita for reporting this issue.
Adds tests (using the tinytest package).
configure_exiftoolr()
to fail if the path to
the ExifTool executable on a user's computer contained any spaces. Now
configure_exiftoolr()
should work even if there are spaces in the path(s) to
the user's installation of Perl and/or their ExifTool executable or
library. Thanks to Lafont Rapnouil Tristan for reporting the issue.exif_call()
in 0.1.5 from system()
to
system2()
. Thanks to Daniel Baumgartner for bringing this to my attention.pipeline
option to exif_read()
, which allows users to direct the
exif executable to output results in csv rather than json format. This is
helpful for use with images whose metadata contains non-UTF-8-encoded
characters. As is documented
here,
ExifTool's JSON output does not properly handle non-UTF-8 character
sets. Setting pipeline="csv"
ensures that non-UTF-8 character sets are
properly handled, as demonstrated in a new example in ?exif_read
.Fixed exif_read()
to now allow repeated elements in args=
. This can be
necessary when (to take one example) a user needs to separately specify the
encoding used in the image file names and in the tags respectively. Now, a
call like the following works as it should:
exif_read(path = "myimage.jpg",
args = c("-charset", "exiftool=cp850", "-charset", "filename=cp1250"))
configure_exiftoolr()
to find a local installation of ExifTool
now throws an error rather than just a warning, preventing infinite recursion
by exif_read()
and exif_version()
.