- One more modification to
install_exiftool()
needed to handle changes in how Phil Harvey's http://exiftool.org provides Windows ExifTool executables.
- Modified
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.
- Adds arguments
config_file=
andcommon_args=
toexif_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 toexif_call()
.
- Fixes bug that could cause a failure to locate an already-installed version of ExifTool on MacOS (and possibly also on *NIX OS's). Thanks to Courtney Meier for the bug report.
- Changes default location into which exiftool executable is downloaded by a
call to
install_exiftool()
. Formerly, the executable was installed into the directory returned bysystem.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 bybackports::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 theexiftoolr:::configure_perl()
. Thanks to Tom Yamashita for reporting this issue. -
Adds tests (using the tinytest package).
- Fixes an issue that could cause
configure_exiftoolr()
to fail if the path to the ExifTool executable on a user's computer contained any spaces. Nowconfigure_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.
- Fixes a problem likely to affect Linux users (but also any others relying on a
local installation of Perl to execute calls to ExifTool), caused by the
internal change in
exif_call()
in 0.1.5 fromsystem()
tosystem2()
. Thanks to Daniel Baumgartner for bringing this to my attention.
- Added a
pipeline
option toexif_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. Settingpipeline="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 inargs=
. 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"))
- Failure of
configure_exiftoolr()
to find a local installation of ExifTool now throws an error rather than just a warning, preventing infinite recursion byexif_read()
andexif_version()
.