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.
An R package for optimizing and compressing images using Rust libraries. Supports PNG optimization via exoquant (lossy palette reduction) and oxipng (lossless optimization), and JPEG re-encoding via mozjpeg.
You can install the development version of {tinyimg} from r-universe.dev:
install.packages("tinyimg", repos = "https://yihui.r-universe.dev")library(tinyimg)
# Optimize all images in a directory (PNG and JPEG)
tinyimg("path/to/directory")
# Optimize specific files (mixed formats)
tinyimg(c("photo.jpg", "diagram.png"))# Create a test PNG
tmp = tempfile()
png(tmp, width = 400, height = 400)
plot(1:10)
dev.off()
# Optimize with different levels (lossless)
tinypng(tmp, paste0(tmp, "-o1.png"), level = 1)
tinypng(tmp, paste0(tmp, "-o6.png"), level = 6)
# Lossy
tinypng(tmp, paste0(tmp, "-lossy.png"), lossy = 2.3)# Create a test JPEG
tmp = tempfile(fileext = ".jpg")
jpeg(tmp, width = 400, height = 400)
plot(1:10)
dev.off()
# Optimize with default quality (75)
tinyjpg(tmp)
# Optimize to a new file at a lower quality
tinyjpg(tmp, paste0(tmp, "-q60.jpg"), quality = 60)For PNG, 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
slowerFor JPEG, the quality parameter (0-100) controls the
trade-off between quality and file size; higher quality means larger
files and vice versa.
See the benchmark results (for png
and jpeg)
for detailed comparisons, and ?tinyimg 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.
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.