Use magick::image_resize()
to shrink an
image if its width is larger than the value specified by the argument
width
, and optionally call tinify()
to compress it.
shrink_images(
width = 800,
dir = ".",
files = all_files("[.](png|jpe?g|webp)$", dir),
tinify = FALSE
)
The desired maximum width of images.
The directory of images.
A vector of image file paths. By default, this is all
.png
, .jpeg
, and .webp
images under dir
.
Whether to compress images using tinify()
.
f = xfun:::all_files("[.](png|jpe?g)$", R.home("doc"))
file.copy(f, tempdir())
f = file.path(tempdir(), basename(f))
magick::image_info(magick::image_read(f)) # some widths are larger than 300
xfun::shrink_images(300, files = f)
magick::image_info(magick::image_read(f)) # all widths <= 300 now
file.remove(f)
Run the code above in your browser using DataLab