library(magick)
## Linking to ImageMagick 6.9.12.3
## Enabled features: cairo, freetype, fftw, ghostscript, heic, lcms, pango, raw, rsvg, webp
## Disabled features: fontconfig, x11

Contoh di atas menyangkut gambar tunggal. Namun semua fungsi dalam sulap telah divektorisasi untuk mendukung bekerja dengan lapisan, komposisi, atau animasi.

Metode dasar standar [ [[, c() dan length() digunakan untuk memanipulasi vektor gambar yang kemudian dapat diperlakukan sebagai lapisan atau bingkai.

# Download earth gif and make it a bit smaller for vignette
earth <- image_read("https://jeroen.github.io/images/earth.gif") %>%
  image_scale("200x") %>%
  image_quantize(128)

length(earth)
## [1] 44
earth

head(image_info(earth))
##   format width height colorspace matte filesize density
## 1    GIF   200    200        RGB FALSE        0   72x72
## 2    GIF   200    200        RGB  TRUE        0   72x72
## 3    GIF   200    200        RGB  TRUE        0   72x72
## 4    GIF   200    200        RGB  TRUE        0   72x72
## 5    GIF   200    200        RGB  TRUE        0   72x72
## 6    GIF   200    200        RGB  TRUE        0   72x72
rev(earth) %>% 
  image_flip() %>% 
  image_annotate("meanwhile in Australia", size = 20, color = "white")

LAPISAN

Kita dapat menumpuk lapisan di atas satu sama lain seperti yang kita lakukan di Photoshop:

bigdata <- image_read('https://jeroen.github.io/images/bigdata.jpg')
frink <- image_read("https://jeroen.github.io/images/frink.png")
logo <- image_read("https://jeroen.github.io/images/Rlogo.png")
img <- c(bigdata, logo, frink)
img <- image_scale(img, "300x300")
image_info(img)
##   format width height colorspace matte filesize density
## 1   JPEG   300    225       sRGB FALSE        0   72x72
## 2    PNG   300    232       sRGB  TRUE        0   72x72
## 3    PNG   148    300       sRGB  TRUE        0   72x72

Mosaik mencetak gambar di atas satu sama lain, memperluas kanvas keluaran sedemikian rupa sehingga semuanya pas:

image_mosaic(img)

Perataan menggabungkan lapisan menjadi satu gambar yang memiliki ukuran gambar pertama:

image_flatten(img)

Perataan dan mosaik memungkinkan untuk menentukan operator komposit alternatif:

image_flatten(img, 'Add')

image_flatten(img, 'Modulate')

image_flatten(img, 'Minus')

KOMBINASI

Menambahkan berarti hanya menempatkan bingkai di samping satu sama lain:

image_append(image_scale(img, "x200"))

Gunakan stack = TRUE untuk memposisikannya di atas satu sama lain:

image_append(image_scale(img, "100"), stack = TRUE)

Menulis memungkinkan untuk menggabungkan dua gambar pada posisi tertentu:

bigdatafrink <- image_scale(image_rotate(image_background(frink, "none"), 300), "x200")
image_composite(image_scale(bigdata, "x400"), bigdatafrink, offset = "+180+100")