Bindings to ImageMagick: the most comprehensive open-source image processing library available. Supports many common formats (png, jpeg, tiff, pdf, etc) and manipulations (rotate, scale, crop, trim, flip, blur, etc). All operations are vectorized via the Magick++ STL meaning they operate either on a single frame or a series of frames for working with layers, collages, or animation. In RStudio images are automatically previewed when printed to the console, resulting in an interactive editing environment.
About the underlying library:
Run examples in RStudio to see a live previews of the images!
frink <- image_read("https://jeroenooms.github.io/images/frink.png")
image_trim(frink)
image_scale(frink, "200x200")
image_flip(frink)
image_rotate(frink, 45)
image_negate(frink)
image_border(frink, "red", "10x10")
Effects
image_oilpaint(frink)
image_implode(frink)
image_charcoal(frink)
image_blur(frink)
image_edge(frink)
Create GIF animation:
# Download images
oldlogo <- image_read("https://developer.r-project.org/Logo/Rlogo-2.png")
newlogo <- image_read("https://www.r-project.org/logo/Rlogo.png")
logos <- c(oldlogo, newlogo)
logos <- image_scale(logos, "400x400")
# Create GIF
(animation1 <- image_animate(logos))
image_write(animation1, "anim1.gif")
# Morph effect
(animation2 <- image_animate(image_morph(logos, frames = 10))
image_write(animation2, "anim2.gif")
Read GIF anination frames
earth <- image_read("https://upload.wikimedia.org/wikipedia/commons/2/2c/Rotating_earth_%28large%29.gif")
length(earth)
earth[1]
earth[1:3]
rev(earth)
R logo with dancing banana
logo <- image_read("https://www.r-project.org/logo/Rlogo.png")
banana <- image_read(system.file("banana.gif", package = "magick"))
front <- image_scale(banana, "300")
background <- image_scale(logo, "400")
frames <- lapply(as.list(front), function(x) image_flatten(c(background, x)))
image_animate(image_join(frames))
Binary packages for OS-X or Windows can be installed directly from CRAN:
install.packages("magick")
Installation from source on Linux or OSX requires the imagemagick Magick++
library. On Debian or Ubuntu install libmagick++-dev:
sudo apt-get install -y libmagick++-dev
On Fedora, CentOS or RHEL we need ImageMagick-c++-devel:
sudo yum install ImageMagick-c++-devel
On OS-X use imagemagick from Homebrew. Note that we need to build --with-fontconfig
to support text features such as annotation and svg rendering.
brew install imagemagick --with-fontconfig
There is also a fork of imagemagick called graphicsmagick, but it doesn't work as well. I highly recommend you build with imagemagick.