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.
resmush is a R package that allow users to optimize and compress images using reSmush.it. reSmush.it is a free API that provides image optimization, and it has been implemented on WordPress, Drupal and many more.
Some of the features of reSmush.it are:
png
, jpg/jpeg
,
gif
, bmp
, tiff
.Install resmush from CRAN with:
install.packages("resmush")
You can install the development version of resmush from GitHub with:
::install_github("dieghernan/resmush") remotes
Alternatively, you can install resmush using the r-universe:
# Install resmush in R:
install.packages("resmush", repos = c(
"https://dieghernan.r-universe.dev",
"https://cloud.r-project.org"
))
Compressing an online jpg
image:
library(resmush)
<- paste0(
url "https://raw.githubusercontent.com/dieghernan/",
"resmush/main/img/jpg_example_original.jpg"
)
resmush_url(url, outfile = "man/figures/jpg_example_compress.jpg", overwrite = TRUE)
#> ══ resmush summary ═════════════════════════════════════════════════════════════
#> ℹ Input: 1 url with size 178.7 Kb
#> ✔ Success for 1 url: Size now is 45 Kb (was 178.7 Kb). Saved 133.7 Kb (74.82%).
#> See result in directory 'man/figures'.
Original picture (top) 178.7 Kb and optimized picture (bottom) 45 Kb (Compression 74.8%). Click to enlarge.
The quality of the compression can be adjusted in the case of
jpg
files using the parameter qlty
. However,
it is recommended to keep this value above 90 to get a good image
quality.
# Extreme case
resmush_url(url,
outfile = "man/figures/jpg_example_compress_low.jpg", overwrite = TRUE,
qlty = 3
)#> ══ resmush summary ═════════════════════════════════════════════════════════════
#> ℹ Input: 1 url with size 178.7 Kb
#> ✔ Success for 1 url: Size now is 2.2 Kb (was 178.7 Kb). Saved 176.4 Kb (98.74%).
#> See result in directory 'man/figures'.
All the functions return invisibly a data set with a summary of the process. The next example shows how when compressing a local file.
<- system.file("extimg/example.png", package = "resmush")
png_file
# For the example, copy to a temporary file
<- tempfile(fileext = ".png")
tmp_png file.copy(png_file, tmp_png, overwrite = TRUE)
#> [1] TRUE
<- resmush_file(tmp_png, overwrite = TRUE)
summary
::as_tibble(summary[, -c(1, 2)])
tibble#> # 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
There are other alternatives for optimizing images with R:
xfun::tinify()
is similar to
resmush_file()
but uses TinyPNG. An API key is
required.xfun::optipng()
compresses local files with
OptiPNG (which needs to be installed locally).xfun::optipng()
with more options. Requires
additional software to be installed locally.tool | CRAN | Additional software? | Online? | API Key? | 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) |
optout | No | Yes | No | No | No |
resmush | Yes | No | Yes | No | Max size 5Mb |
Table 1: R packages: Comparison of alternatives for optimizing images.
tool | png | jpg | gif | bmp | tiff | webp | |
---|---|---|---|---|---|---|---|
xfun::tinify() |
✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ |
xfun::optipng() |
✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
tinieR | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ |
optout | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
resmush | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
Table 2: R packages: Formats admitted.
Hernangómez D (2024). resmush: Optimize and Compress Image Files with reSmush.it. doi:10.32614/CRAN.package.resmush, https://dieghernan.github.io/resmush/.
A BibTeX entry for LaTeX users is
@Manual{R-resmush,
title = {{resmush}: Optimize and Compress Image Files with {reSmush.it}},
doi = {10.32614/CRAN.package.resmush},
author = {Diego Hernangómez},
year = {2024},
version = {0.2.1},
url = {https://dieghernan.github.io/resmush/},
abstract = {Compress local and online images using the reSmush.it API service <https://resmush.it/>.},
}
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.