An R package for optimizing and compressing images using Rust libraries. Currently supports PNG optimization via the oxipng crate.
You can install the development version of tinyimg from GitHub:
# install.packages("remotes")
remotes::install_github("yihui/tinyimg")library(tinyimg)
# Create a test PNG
tmp = tempfile()
png(tmp, width = 400, height = 400)
plot(1:10)
dev.off()
# Optimize with different levels
optim_png(tmp, paste0(tmp, "-o1.png"), level = 1)
optim_png(tmp, paste0(tmp, "-o6.png"), level = 6)# Optimize all PNGs in a directory
optim_png("path/to/directory")The level parameter controls the optimization level
(0-6):
0: Fast optimization with minimal compression2: Default - good balance between speed and
compression6: Maximum optimization - best compression but
slowerSee the benchmark
results for detailed comparisons of optimization levels and
?optim_png for full documentation.
When installing from GitHub via
remotes::install_github("yihui/tinyimg"), the package will
automatically create the vendor directory if Rust is installed on your
system.
If you’re developing and need to manually create the vendor directory:
# Run the update script to create vendor/ directory
./src/rust/update-vendor.shThis creates the local vendor/ directory needed for
development. Neither vendor/ nor vendor.tar.xz
are tracked in git.
MIT License. See LICENSE file for details.