The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Using resmush

resmush is an R package for optimizing and compressing images with reSmush.it. reSmush.it is a free API for image optimization and is available through WordPress and many other tools.

reSmush.it includes:

Example

Compress an online jpg image with resmush_url():

library(resmush)

url <- "https://dieghernan.github.io/resmush/img/jpg_example_original.jpg"

resmush_url(url, outfile = "jpg_example_compress.jpg", overwrite = TRUE)
#> ══ resmush summary ═════════════════════════════════════════════════════════════
#> ℹ Input: 1 URL, total size 178.7 Kb.
#> ✔ Optimized 1 URL: Size is now 45 Kb (was 178.7 Kb). Saved 133.7 Kb (74.82%).
#> Saved result in directory '.'.
Original uncompressed JPEG image
(a)
Optimized JPEG image
(b)
Figure 1: Original image Figure 1 (a): 178.7 KB, optimized image Figure 1 (b): 45 KB (compression: 74.8%). Click to enlarge.

Use the qlty argument to adjust compression quality for jpg files. Keep this value above 90 to maintain good image quality.

# Use an extreme compression setting.
resmush_url(
  url,
  outfile = tempfile(fileext = ".jpg"),
  overwrite = TRUE,
  qlty = 3
)
#> ══ resmush summary ═════════════════════════════════════════════════════════════
#> ℹ Input: 1 URL, total size 178.7 Kb.
#> ✔ Optimized 1 URL: Size is now 2.2 Kb (was 178.7 Kb). Saved 176.4 Kb (98.74%).
#> Saved result in directory 'tempdir()'.

JPEG image with visible compression artifacts

Figure 2: Image with visible compression artifacts caused by high compression (qlty = 3), compared with Figure 1 (b).

All optimization functions invisibly return a data frame that summarizes the process. The following example shows this output when compressing a local file:

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

summary <- resmush_file(tmp_png, overwrite = TRUE)

tibble::as_tibble(summary[, -c(1, 2)])
#> # A tibble: 1 × 6
#>   src_size dest_size compress_ratio notes src_bytes dest_bytes
#>   <chr>    <chr>     <chr>          <chr>     <dbl>      <dbl>
#> 1 239.9 Kb 70.7 Kb   70.54%         OK       245618      72356

Alternatives

Several other R packages also provide image optimization tools:

Tool CRAN Additional software Online images API key required Limits
xfun::tinify() Yes No Yes Yes 500 files/month (free tier)
xfun::optipng() Yes Yes No No No
tinieR No No Yes Yes 500 files/month (free tier)
tinyimg Yes Yes No No No
optout No Yes No No No
resmush Yes No Yes No Maximum size: 5 MB
Table 1: R packages: comparison of image optimization alternatives.
Tool png jpg gif bmp tiff webp pdf
xfun::tinify()
xfun::optipng()
tinieR
tinyimg
optout
resmush
Table 2: R packages: supported formats.

References

Xie, Yihui. 2024. xfun: Supporting Functions for Packages Maintained by Yihui Xie. https://github.com/yihui/xfun.
Xie, Yihui. 2026. tinyimg: Optimize and Compress Images. https://doi.org/10.32614/CRAN.package.tinyimg.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.