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()
.