ImageMagickをベースにした画像処理用のパッケージ。ImageMagick自体は多機能で多くの環境で使えるオープンソースなのだが、サーバで使う場合にはセキュリティの問題が無視できない模様。

以下公式vignettesを元にメモ。

インストール

まずはhomebrewを用いてmacにImageMagick@6をインストールする。

brew install imagemagick@6 --with-fontconfig --with-librsvg
brew link --force imagemagick@6

最新版と併用する必要があればリンクかパスのどちらかで対応が必要になるとおもわれる。magickパッケージはCRANにもあるのでinstall.packages("magick", dependencies = TRUE)で。

画像種類別の対応状況確認

str(magick::magick_config())
## List of 21
##  $ version           :Class 'numeric_version'  hidden list of 1
##   ..$ : int [1:4] 6 9 9 39
##  $ modules           : logi FALSE
##  $ cairo             : logi TRUE
##  $ fontconfig        : logi TRUE
##  $ freetype          : logi TRUE
##  $ fftw              : logi FALSE
##  $ ghostscript       : logi FALSE
##  $ jpeg              : logi TRUE
##  $ lcms              : logi TRUE
##  $ libopenjp2        : logi TRUE
##  $ lzma              : logi TRUE
##  $ pangocairo        : logi TRUE
##  $ pango             : logi TRUE
##  $ png               : logi TRUE
##  $ rsvg              : logi TRUE
##  $ tiff              : logi TRUE
##  $ webp              : logi TRUE
##  $ wmf               : logi FALSE
##  $ x11               : logi FALSE
##  $ xml               : logi TRUE
##  $ zero-configuration: logi TRUE

imagemagick@6インストール時のメッセージ

magickパッケージの対応するImageMagicのバージョンが上がった時に必要になる気がするのでメモ。

imagemagick@6 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have imagemagick@6 first in your PATH run:
  echo 'export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"' >> ~/.bash_profile

For compilers to find imagemagick@6 you may need to set:
  export LDFLAGS="-L/usr/local/opt/imagemagick@6/lib"
  export CPPFLAGS="-I/usr/local/opt/imagemagick@6/include"

For pkg-config to find imagemagick@6 you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig"
$ brew link --force imagemagick@6
Linking /usr/local/Cellar/imagemagick@6/6.9.10-14... 76 symlinks created

If you need to have this software first in your PATH instead consider running:
  echo 'export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"' >> ~/.bash_profile

Image IO

画像を結合する

img_list <- c("img/RStudio-Project-NewMenu.png",
              "img/RStudio-Project-New-VC.png",
              "img/RStudio-Project-New-Git.png",
              "img/RStudio-Project-New-Clone.png")
img_list %>% 
  magick::image_read(.) %>% # 読み込んで
  magick::image_scale("x512") %>% # 縦を揃えて
  magick::image_append(.) %>% # 左→右にくっつける(stack = TRUEで上から下へ)
  magick::image_write("img/RStudio-newVCProject.png", format = "png") # pathにformat形式で保存

TODO

  • モザイク
  • ぼかしの強いの
  • 一部だけモザイク?
  • パイプと[]で一部だけ処理とかできる?