This project is not maintained anymore
If you like it or continue to use it fork it please.
Crystal C bindings for MagickWand library, an interface to use the ImageMagick image processing libraries - see www.imagemagick.org
NOTE: Base on ImageMagick-7.0.8-66. MagickWand is a quite large library, if you find something missing contact me
- libMagickWand must be installed
- pkg-config must be available
- Add this to your application's
shard.yml
:
dependencies:
magickwand-crystal:
github: blocknotes/magickwand-crystal
Get image info:
require "magickwand-crystal"
LibMagick.magickWandGenesis # lib init
wand = LibMagick.newMagickWand # lib init
if LibMagick.magickReadImage( wand, "test.png" )
puts LibMagick.magickGetImageWidth wand
puts LibMagick.magickGetImageHeight wand
end
LibMagick.destroyMagickWand wand # lib deinit
LibMagick.magickWandTerminus # lib deinit
Scale image and save in Jpeg format:
require "magickwand-crystal"
# ... lib init ...
LibMagick.magickReadImage wand, "test.png"
LibMagick.magickScaleImage wand, 320, 240
LibMagick.magickWriteImage wand, "test2.jpg"
# ... lib deinit ...
Convert to grayscale:
require "magickwand-crystal"
# ... lib init ...
LibMagick.magickReadImage wand, "test.jpg"
LibMagick.magickTransformImageColorspace wand, LibMagick::ColorspaceType::GRAYColorspace
LibMagick.magickWriteImage wand, "grayscale.jpg"
# ... lib deinit ...
See examples folder. There is also an example to generate an image on the fly with Kemal.
The functions mapped have the same names of the MagickWand C library but with the first letter in lowercase.
Example: MagickWandGenesis
=> LibMagick.magickWandGenesis
Branches with different ImageMagick version:
- im_6.9.7-3
- im_7.0.4-1
The Crystal Magic Wand ! :)
Sounds funny but I hope you find it a useful piece of software.
- Mattia Roccoberton - creator, maintainer, Crystal fan :)