Package 'exifr'

Title: EXIF Image Data in R
Description: Reads EXIF data using ExifTool <https://exiftool.org> and returns results as a data frame. ExifTool is a platform-independent Perl library plus a command-line application for reading, writing and editing meta information in a wide variety of files. ExifTool supports many different metadata formats including EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop IRB, FlashPix, AFCP and ID3, as well as the maker notes of many digital cameras by Canon, Casio, FLIR, FujiFilm, GE, HP, JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Motorola, Nikon, Nintendo, Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Phase One, Reconyx, Ricoh, Samsung, Sanyo, Sigma/Foveon and Sony.
Authors: Dewey Dunnington [aut, cre] , Phil Harvey [aut]
Maintainer: Dewey Dunnington <[email protected]>
License: GPL-2
Version: 0.3.2.9000
Built: 2024-11-06 02:40:18 UTC
Source: https://github.com/paleolimbot/exifr

Help Index


Configure perl, ExifTool

Description

Configure perl, ExifTool

Usage

configure_exiftool(
  command = NULL,
  perl_path = NULL,
  install_url = NULL,
  install_location = NULL,
  quiet = FALSE
)

configure_perl(perl_path = NULL, quiet = FALSE)

configure_exiftool_reset()

Arguments

command

The exiftool command or location of exiftool.pl

perl_path

The path to the perl executable

install_url

The url from which exiftool could be installed

install_location

The location to install exiftool

quiet

Use quiet = FALSE to display status updates

Value

The exiftool command, invisibly


Call exiftool from R

Description

Uses system() to run a basic call to exiftool.

Usage

exiftool_call(args = NULL, fnames = NULL, intern = FALSE, ..., quiet = FALSE)

exiftool_version()

exiftool_command(args = character(0), fnames = character(0))

Arguments

args

a list of non-shell quoted arguments (e.g. -n -csv)

fnames

a list of filenames (shQuote() will be applied to this vector)

intern

TRUE if output should be returned as a character vector.

...

additional arguments to be passed to system2

quiet

Suppress output of the command itself.

Value

The exit code if intern=FALSE, or the standard output as a character vector if intern=TRUE.

Examples

exiftool_call()
exiftool_version()

Read EXIF data from files

Description

Reads EXIF data into a data.frame by calling the ExifTool command-line application, written by Phil Harvey. Depending on number of images and command-line length requirements, the command may be called multiple times.

Usage

read_exif(path, tags = NULL, recursive = FALSE, args = NULL, quiet = TRUE)

Arguments

path

A vector of filenames

tags

A vector of tags to output. It is a good idea to specify this when reading large numbers of files, as it decreases the output overhead significantly. Spaces will be stripped in the output data frame. This parameter is not case-sensitive.

recursive

TRUE to pass the "-r" option to ExifTool

args

Additional arguments

quiet

Use FALSE to display diagnostic information

Details

From the ExifTool website: ExifTool is a platform-independent Perl library plus a command-line application for reading, writing and editing meta information in a wide variety of files. ExifTool supports many different metadata formats including EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop IRB, FlashPix, AFCP and ID3, as well as the maker notes of many digital cameras by Canon, Casio, FLIR, FujiFilm, GE, HP, JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Motorola, Nikon, Nintendo, Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Phase One, Reconyx, Ricoh, Samsung, Sanyo, Sigma/Foveon and Sony. For more information, see the ExifTool website.

Note that binary tags such as thumbnails are loaded as base64-encoded strings that start with "base64:".

Value

A data frame (tibble) with columns SourceFile and one per tag read in each file. The number of rows may differ, particularly if recursive is set to TRUE, but in general will be one per file.

Examples

files <- list.files(path.package("exifr"), recursive=TRUE, pattern="*.jpg", full.names=TRUE)
exifinfo <- read_exif(files)
# is equivalent to
exifinfo <- read_exif(path.package("exifr"), recursive=TRUE)

read_exif(files, tags=c("filename", "imagesize"))