| Title: | Optimize and Compress Image Files with 'reSmush.it' | 
| Version: | 0.2.1 | 
| Description: | Compress local and online images using the 'reSmush.it' API service https://resmush.it/. | 
| License: | MIT + file LICENSE | 
| URL: | https://dieghernan.github.io/resmush/, https://github.com/dieghernan/resmush | 
| BugReports: | https://github.com/dieghernan/resmush/issues | 
| Depends: | R (≥ 3.6.0) | 
| Imports: | cli, curl, httr2 (≥ 1.0.0), tools, utils | 
| Suggests: | grid, knitr, png, rmarkdown, testthat (≥ 3.0.0) | 
| VignetteBuilder: | knitr | 
| Config/Needs/website: | dieghernan/gitdevr, xfun, dplyr, tibble, devtools, remotes | 
| Config/testthat/edition: | 3 | 
| Config/testthat/parallel: | true | 
| Encoding: | UTF-8 | 
| RoxygenNote: | 7.3.2 | 
| X-schema.org-keywords: | r, compress-images, optimize-images, resmushit, api, r-package, cran, cran-r | 
| NeedsCompilation: | no | 
| Packaged: | 2024-12-18 10:23:54 UTC; diego | 
| Author: | Diego Hernangómez | 
| Maintainer: | Diego Hernangómez <diego.hernangomezherrero@gmail.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2024-12-18 10:40:02 UTC | 
resmush: Optimize and Compress Image Files with 'reSmush.it'
Description
 
Compress local and online images using the 'reSmush.it' API service https://resmush.it/.
Author(s)
Maintainer: Diego Hernangómez diego.hernangomezherrero@gmail.com (ORCID) [copyright holder]
See Also
Useful links:
- Report bugs at https://github.com/dieghernan/resmush/issues 
Helper function for cleaning files created by resmush
Description
Use with caution. This would remove files from your computer.
Clean a directory (or a list of directories) of files created by
resmush_file().
Usage
resmush_clean_dir(dir, suffix = "_resmush", recursive = FALSE)
Arguments
| dir | A character vector of full path names. See  | 
| suffix | Character, defaults to  | 
| recursive | Logical. Should the files to be deleted recurse into directories? | 
Value
Nothing. Produce messages with information of the process.
See Also
resmush_file(), resmush_dir(), list.files(), unlink()
Examples
# Simple example
png_file <- system.file("extimg/example.png", package = "resmush")
# Copy to a temporary file with a given suffix
suffix <- "_would_be_removed"
tmp_png <- file.path(
  tempdir(),
  paste0("example", suffix, ".png")
)
file.exists(tmp_png)
file.copy(png_file, tmp_png, overwrite = TRUE)
file.exists(tmp_png)
# This won't remove it
resmush_clean_dir(tempdir())
file.exists(tmp_png)
# Need suffix
resmush_clean_dir(tempdir(), suffix = suffix)
file.exists(tmp_png)
Optimize files of several directories
Description
Optimize all the local files of a directory (or list of directories) using the reSmush.it API.
Usage
resmush_dir(
  dir,
  ext = "\\.(png|jpe?g|bmp|gif|tif)$",
  suffix = "_resmush",
  overwrite = FALSE,
  progress = TRUE,
  report = TRUE,
  recursive = FALSE,
  ...
)
Arguments
| dir | Character or vector of characters representing paths of local directories. | 
| ext | 
 | 
| suffix | Character, defaults to  | 
| overwrite | Logical. Should the files in  | 
| progress | Logical. Display a progress bar when needed. | 
| report | Logical. Display a summary report of the process in the console. See also Value. | 
| recursive | Logical. Should the  | 
| ... | Arguments passed on to  
 | 
Value
Writes on disk the optimized file if the API call is successful in the
directories specified in dir.
In all cases, a (invisible) data frame with a summary of the process is returned as well.
See Also
reSmush.it API docs.
See resmush_clean_dir() to clean a directory of previous runs.
Other functions for optimizing:
resmush_file(),
resmush_url()
Examples
# Get example dir and copy
example_dir <- system.file("extimg", package = "resmush")
temp_dir <- tempdir()
file.copy(example_dir, temp_dir, recursive = TRUE)
# Dest folder
dest_folder <- file.path(tempdir(), "extimg")
# Non-recursive
resmush_dir(dest_folder)
resmush_clean_dir(dest_folder)
# Recursive
summary <- resmush_dir(dest_folder, recursive = TRUE)
# Same info in the invisible df
summary[, -c(1, 2)]
# Display with png
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 example
unlink(dest_folder, force = TRUE, recursive = TRUE)
Optimize a local file
Description
Optimize local images using the reSmush.it API.
Usage
resmush_file(
  file,
  suffix = "_resmush",
  overwrite = FALSE,
  progress = TRUE,
  report = TRUE,
  qlty = 92,
  exif_preserve = FALSE
)
Arguments
| file | Path or paths to local files. reSmush can optimize the following image files: 
 | 
| suffix | Character, defaults to  | 
| overwrite | Logical. Should the file in  | 
| progress | Logical. Display a progress bar when needed. | 
| report | Logical. Display a summary report of the process in the console. See also Value. | 
| qlty | Only affects  | 
| exif_preserve | Logical. Should the
Exif information (if any) deleted?
Default is to remove it (i.e.  | 
Value
Writes on disk the optimized file if the API call is successful in the
same directory than file.
With the option report = TRUE a summary report is displayed in the
console. In all cases, a (invisible) data frame with a summary of the
process used for generate the report is returned.
See Also
reSmush.it API docs.
See resmush_clean_dir() to clean a directory of previous runs.
Other functions for optimizing:
resmush_dir(),
resmush_url()
Examples
png_file <- system.file("extimg/example.png", package = "resmush")
# For the example, copy to a temporary file
tmp_png <- tempfile(fileext = ".png")
file.copy(png_file, tmp_png, overwrite = TRUE)
resmush_file(tmp_png)
# Several paths
jpg_file <- system.file("extimg/example.jpg", package = "resmush")
tmp_jpg <- tempfile(fileext = ".jpg")
file.copy(jpg_file, tmp_jpg, overwrite = TRUE)
# Output summary in console
summary <- resmush_file(c(tmp_png, tmp_jpg))
# Similar info in an (invisible) data frame as a result
summary
# Display with png
if (require("png", quietly = TRUE)) {
  my_png <- png::readPNG(summary$dest_img[1])
  grid::grid.raster(my_png)
}
# With parameters
resmush_file(tmp_jpg)
resmush_file(tmp_jpg, qlty = 10)
Optimize an online file
Description
Optimize and download an online image using the reSmush.it API.
Usage
resmush_url(
  url,
  outfile = file.path(tempdir(), basename(url)),
  overwrite = FALSE,
  progress = TRUE,
  report = TRUE,
  qlty = 92,
  exif_preserve = FALSE
)
Arguments
| url | url or a vector of urls pointing to hosted image files. reSmush can optimize the following image files: 
 | 
| outfile | Path or paths where the optimized files would be store in
your disk. By default, temporary files (see  | 
| overwrite | Logical. Should  | 
| progress | Logical. Display a progress bar when needed. | 
| report | Logical. Display a summary report of the process in the console. See also Value. | 
| qlty | Only affects  | 
| exif_preserve | Logical. Should the
Exif information (if any) deleted?
Default is to remove it (i.e.  | 
Value
Writes on disk the optimized file if the API call is successful. In all cases, a (invisible) data frame with a summary of the process is returned as well.
If any value of the vector outfile is duplicated, resmush_url() would
rename the output with a suffix _01. _02, etc.
See Also
reSmush.it API docs.
Other functions for optimizing:
resmush_dir(),
resmush_file()
Examples
# Base url
base_url <- "https://raw.githubusercontent.com/dieghernan/resmush/main/inst/"
png_url <- paste0(base_url, "/extimg/example.png")
resmush_url(png_url)
# Several urls
jpg_url <- paste0(base_url, "/extimg/example.jpg")
summary <- resmush_url(c(png_url, jpg_url))
# Returns an (invisible) data frame with a summary of the process
summary
# Display with png
if (require("png", quietly = TRUE)) {
  my_png <- png::readPNG(summary$dest_img[1])
  grid::grid.raster(my_png)
}
# Use with jpg and parameters
resmush_url(jpg_url)
resmush_url(jpg_url, qlty = 10)