Melib

Media Lib: image, vedio and so on

Installation

If available in Hex, the package can be installed by adding melib to your list of dependencies in mix.exs:

def deps do
  [
    {:melib, "~> 0.1.1"}
  ]
end

## config.exs eg.

config :melib, :magick_path, "/usr/local/ImageMagick7/bin"

Install ImageMagick7@Mac

brew install fftw fontconfig ghostscript libheif liblqr librsvg libwmf little-cms openexr pango perl webp
brew install imagemagick@7 --with-fftw --with-fontconfig --with-ghostscript --with-libheif --with-liblqr --with-librsvg --with-libwmf --with-little-cms --with-openexr --with-pango --with-perl
brew unlink imagemagick@6
brew link imagemagick@7
brew info imagemagick@7

Install ImageMagick-7@centos

# use linuxbrew
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
# add -> export PATH="$HOME/.linuxbrew/bin:$PATH" -> to ~/.zshrc and ~/.bashrc
brew install fftw fontconfig ghostscript libheif liblqr librsvg libwmf little-cms openexr pango perl webp
brew install imagemagick@7 --with-fftw --with-fontconfig --with-ghostscript --with-libheif --with-liblqr --with-librsvg --with-libwmf --with-little-cms --with-openexr --with-pango --with-perl
cd /usr/local/src && \
git clone https://github.com/strukturag/libde265 && \
cd libde265 && \
./autogen.sh && \
./configure && \
make && \
make install

cd /usr/local/src && \
git clone https://github.com/strukturag/libheif && \
cd libheif && \
./autogen.sh && \
./configure && \
make && \
make install

cd /usr/local/src && \
rm -rf ImageMagick7 && \
wget https://github.com/ImageMagick/ImageMagick/archive/7.0.7-35.tar.gz -O ImageMagick-7.0.7-35.tar.gz && \
tar xvzf ImageMagick-7.0.7-35.tar.gz && \
mv ImageMagick-7.0.7-35 ImageMagick7 && \
cd ImageMagick7 && \
./configure --prefix=/usr/local/ImageMagick7 --with-openjp2=yes --with-gvc=yes --with-fftw=yes --with-heic=yes --with-rsvg=yes --with-wmf=yes --with-xml=yes --with-openexr=yes --with-webp=yes && \
make && \
make install && \
cd .. && \
rm -rf ImageMagick-7.0.7-35.tar.gz

Install ImageMagick-6@centos

cd /usr/local/src && \
rm -rf ImageMagick6 && \
wget https://github.com/ImageMagick/ImageMagick6/archive/6.9.9-47.tar.gz -O ImageMagick-6.9.9-47.tar.gz && \
tar xvzf ImageMagick-6.9.9-47.tar.gz && \
mv ImageMagick6-6.9.9-47 ImageMagick6 && \
cd ImageMagick6 && \
./configure --prefix=/usr/local/ImageMagick6 --with-openjp2=yes --with-gvc=yes --with-fftw=yes --with-heic=yes --with-rsvg=yes --with-wmf=yes --with-xml=yes --with-openexr=yes --with-webp=yes && \
make && \
make install && \
cd .. && \
rm -rf ImageMagick-6.9.9-47.tar.gz

Usage

create gif from static images

images = [
 "/Users/happy/tmp/a/1.jpg",
 "/Users/happy/tmp/a/2.jpg",
 "/Users/happy/tmp/a/3.jpg",
 "/Users/happy/tmp/a/4.jpg",
 "/Users/happy/tmp/a/5.jpg",
 "/Users/happy/tmp/a/6.jpg"
]
Melib.Mogrify.create_gif_from images, [
  path: "/Users/happy/tmp/b/1.gif",   # dist path
  speed: 2
]

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/melib.