Optimize one or more local image files with the reSmush.it API. The API is free for personal use and accepts files smaller than 5 MB.
Usage
resmush_file(
file,
suffix = "_resmush",
overwrite = FALSE,
progress = TRUE,
report = TRUE,
qlty = 92,
exif_preserve = FALSE
)Arguments
- file
A character vector of paths to local image files. The API can optimize PNG, JPEG, GIF, BMP and TIFF files.
- suffix
A character string inserted before each output file extension. The default is
"_resmush", soexample.pngbecomesexample_resmush.png. Values"",NAandNULLare equivalent tooverwrite = TRUE.- overwrite
Logical. Should the input files be overwritten? If
TRUE,suffixis ignored.- progress
Logical. Should a progress bar be displayed?
- report
Logical. Should a summary report be displayed in the console?
- qlty
An integer between
0and100indicating the optimization level. This only affects JPEG files. For optimal results, use values above90.- exif_preserve
Logical. Should EXIF metadata be preserved? The default is
FALSE, which removes it.
Value
A data frame with source and destination paths, file sizes, compression
ratios and status notes, returned invisibly. Successful API calls also write
the optimized files to disk. If report = TRUE, a summary is displayed in
the console.
See also
reSmush.it API documentation.
See resmush_clean_dir() to clean a directory of previous runs.
Other image optimization functions:
resmush_dir(),
resmush_url()
Examples
# \donttest{
png_file <- system.file("extimg/example.png", package = "resmush")
# Copy to a temporary file for this example.
tmp_png <- tempfile(fileext = ".png")
file.copy(png_file, tmp_png, overwrite = TRUE)
#> [1] TRUE
resmush_file(tmp_png)
#> ══ resmush summary ═════════════════════════════════════════════════════════════
#> ℹ Input: 1 file, 239.9 Kb total.
#> ✔ Optimized 1 file: size is now 70.7 Kb (was 239.9 Kb). Saved 169.2 Kb (70.54%).
#> Saved result in directory /tmp/RtmpgyF4Or.
# Optimize multiple files.
jpg_file <- system.file("extimg/example.jpg", package = "resmush")
tmp_jpg <- tempfile(fileext = ".jpg")
file.copy(jpg_file, tmp_jpg, overwrite = TRUE)
#> [1] TRUE
# Display a summary in the console.
summary <- resmush_file(c(tmp_png, tmp_jpg))
#> 🕐 reSmushing | ■■■■■■■■■■■■■■■■□□□□□□□□□□□□□□□ 50% [1ms] | ETA: 0s (1/2 fi…
#> 🕐 reSmushing | ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 100% [821ms] | ETA: 0s (2/2 …
#>
#> ══ resmush summary ═════════════════════════════════════════════════════════════
#> ℹ Input: 2 files, 340.2 Kb total.
#> ✔ Optimized 2 files: size is now 153.8 Kb (was 340.2 Kb). Saved 186.4 Kb (54.79%).
#> Saved results in directory /tmp/RtmpgyF4Or.
# Inspect the returned optimization summary.
summary
#> src_img
#> 1 /tmp/RtmpgyF4Or/file1ad3139c19ed.png
#> 2 /tmp/RtmpgyF4Or/file1ad354e975be.jpg
#> dest_img src_size dest_size
#> 1 /tmp/RtmpgyF4Or/file1ad3139c19ed_resmush.png 239.9 Kb 70.7 Kb
#> 2 /tmp/RtmpgyF4Or/file1ad354e975be_resmush.jpg 100.4 Kb 83.2 Kb
#> compress_ratio notes src_bytes dest_bytes
#> 1 70.54% OK 245618 72356
#> 2 17.15% OK 102796 85164
# Display the PNG output.
if (require("png", quietly = TRUE)) {
my_png <- png::readPNG(summary$dest_img[1])
grid::grid.raster(my_png)
}
# Adjust the optimization level for a JPEG file.
resmush_file(tmp_jpg)
#> ══ resmush summary ═════════════════════════════════════════════════════════════
#> ℹ Input: 1 file, 100.4 Kb total.
#> ✔ Optimized 1 file: size is now 83.2 Kb (was 100.4 Kb). Saved 17.2 Kb (17.15%).
#> Saved result in directory /tmp/RtmpgyF4Or.
resmush_file(tmp_jpg, qlty = 10)
#> ══ resmush summary ═════════════════════════════════════════════════════════════
#> ℹ Input: 1 file, 100.4 Kb total.
#> ✔ Optimized 1 file: size is now 6.4 Kb (was 100.4 Kb). Saved 94 Kb (93.61%).
#> Saved result in directory /tmp/RtmpgyF4Or.
# }
