resmush_dir: Optimize image files in directories

View source: R/resmush_dir.R

resmush_dirR Documentation

Optimize image files in directories

Description

Optimize supported image files in one or more directories with the reSmush.it API. The API is free for personal use and accepts files smaller than 5 MB.

Usage

resmush_dir(
  dir,
  ext = "\\.(png|jpe?g|bmp|gif|tif)$",
  suffix = "_resmush",
  overwrite = FALSE,
  progress = TRUE,
  report = TRUE,
  recursive = FALSE,
  ...
)

Arguments

dir

A character vector of paths to local directories.

ext

A regex matching file extensions to optimize. The default matches lowercase .png, .jpg, .jpeg, .gif, .bmp and .tif extensions.

suffix

A character string inserted before each output file extension. The default is "_resmush". Therefore, example.png becomes example_resmush.png. Values "", NA and NULL are equivalent to overwrite = TRUE.

overwrite

Logical. Should the input files be overwritten? If TRUE, suffix is ignored.

progress

Logical. Should a progress bar be displayed?

report

Logical. Should a summary report be displayed in the console?

recursive

Logical. Should the file search within dir be recursive? See list.files().

...

Arguments passed on to resmush_file

qlty

An integer between 0 and 100 indicating the JPEG quality level. For best results, use values above 90. This argument only affects JPEG files.

exif_preserve

Logical. Should EXIF metadata be preserved? The default is FALSE. This removes it.

Value

An invisibly returned data frame with one row per result and columns containing source and destination paths, formatted and raw file sizes, compression ratios and status notes. Returns NULL if no result is available. Successful API calls also write the optimized files to disk.

See Also

Other image optimization functions: resmush_file(), resmush_url()

Examples



# Copy the example directory.
example_dir <- system.file("extimg", package = "resmush")
temp_dir <- tempdir()
file.copy(example_dir, temp_dir, recursive = TRUE)

# Create the destination folder path.
dest_folder <- file.path(tempdir(), "extimg")

# Optimize files non-recursively.
resmush_dir(dest_folder)
resmush_clean_dir(dest_folder)

# Optimize files recursively.
summary <- resmush_dir(dest_folder, recursive = TRUE)

# Inspect the returned optimization summary.
summary[, -c(1, 2)]

# Display the PNG output.
if (require("png", quietly = TRUE)) {
  a_png <- grepl("png$", summary$dest_img)
  my_png <- png::readPNG(summary[a_png, ]$dest_img[2])
  grid::grid.raster(my_png)
}

# Clean up the example files.
unlink(dest_folder, force = TRUE, recursive = TRUE)



resmush documentation built on July 2, 2026, 5:07 p.m.