Skip to content

dcolley/magick

Repository files navigation

magick

Advanced Image-Processing in R

Build Status AppVeyor Build Status Coverage Status CRAN_Status_Badge CRAN RStudio mirror downloads Github Stars

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.

Documentation

About the underlying library:

Hello World

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))

Installation

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.

About

Magic, madness, heaven, sin

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 98.4%
  • Other 1.6%