Develop
The functionality of ImageMagick is typically utilized from the command-line or you can use the features from programs written in your favorite language. Choose from these interfaces: G2F (Ada), MagickCore (C), MagickWand (C), ChMagick (Ch), Magick++ (C++), JMagick (Java), WASM-ImageMagick (Javawww/Typescript), JuliaIO (Julia), KMagick (Kotlin), L-Magick (Lisp), Lua (LuaJIT), NMagick (Neko/haXe), Magick.NET (.NET), Node-magickwand (Node.js), PascalMagick (Pascal), PerlMagick (Perl), IMagick (PHP), PythonMagick (Python), magick (R), RMagick (Ruby), TclMagick (Tcl/TK), or WASM. With a language interface, use ImageMagick to modify or create images dynamically and automagically.
Choose from these language interfaces:
- C
- Use the thread-safe MagickWand library to convert, compose, and edit images from the C language. There is also the low-level thread-safe MagickCore library for wizard-level developers. The MagickCache API is a development library to utilize an efficient image cache.
- Ch
- ChMagick is a Ch binding to the MagickCore and MagickWand API. Ch is an embeddable C/C++ interpreter for cross-platform scripting.
- C++
- Magick++ provides a thread-safe object-oriented C++ interface to ImageMagick. See A Gentle Introduction to Magick++ for an introductory tutorial to Magick++. We include the source if you want to correct, enhance, or expand the tutorial.
- GO
- GoImagick is a set of Go bindings to ImageMagick's MagickWand and MagickCore C APIs.
- Java
- JMagick provides an object-oriented Java interface to ImageMagick. Im4java is a pure-java interface to the ImageMagick command-line.
- Javawww/TypeScript
- WASM-ImageMagick Webassembly compiliation of ImageMagick that allows serverless clientside bindings for Typescript and Javascript. Works in Progressive Web Apps.
- Julia
- JuliaIO provides an object-oriented Julia interface to ImageMagick.
- KMagick
- KMagick provides Kotlin bindings to ImageMagick.
- LabVIEW
- LVOOP ImageMagick is an object-oriented LabVIEW interface to ImageMagick.
- Lisp
- CL-Magick provides a Common Lisp interface to the ImageMagick library.
- Lua
- Lua bindings to ImageMagick for LuaJIT using FFI.
- Lua bindings to ImageMagick for Lua using pure-C.
- Neko
- NMagick is a port of the ImageMagick library to the haXe and Neko platforms. It provides image manipulation capabilities to both web and desktop applications using Neko.
- .NET
- Use Magick.NET to convert, compose, and edit images from Windows .NET.
- ImageMagickApp is a .NET application written in C# that utilizes the ImageMagick command line to allow conversion of multiple image formats to different formats.
- Node.js
- Node-magickwand is a full native port of the ImageMagick-7 C++ library to Node.js using SWIG Node-API. Unlike all other ImageMagick npm packages, it does not use the CLI to interact with the utilities, but offers direct access to the full C++ API. It supports both synchronous and multithreaded asynchronous operations, it is fully integrated with TypedArrays and it has full TypeScript support.
- Pascal
- PascalMagick a Pascal binding for the MagickWand API and also the low-level MagickCore library. It works with Free Pascal / Lazarus and Delphi.
- Perl
- Use PerlMagick to convert, compose, and edit images from the Perl language.
- PHP
- IMagick is a native PHP extension to create and modify images using the ImageMagick API. Documentation for the extension is available here, and a site showing examples is available at PHPImagick.com.
- phMagick is a wrapper class for ImageMagick, wrapping the most common web image manipulation actions in easy to use functions, but allowing full access to ImageMagick's power by issuing system calls to it's command-line programs.
- Python
- Wand is a ctypes-based ImagedMagick binding library for Python.
- PythonMagick is an object-oriented Python interface to ImageMagick.
- PythonMagickWand is an object-oriented Python interface to MagickWand based on ctypes.
- Scilab Image Processing toolbox utilizes ImageMagick to do imaging tasks such as filtering, blurring, edge detection, thresholding, histogram manipulation, segmentation, mathematical morphology, color image processing, etc..
- REALbasic
- The MBS Realbasic ImageMagick is a plugin that utilizes the power of ImageMagick from within the RealBasic environment.
- R
- The magick package wraps the Magick++ STL to provide vectorized image processing in R. Get started with using the package vignette.
- Ruby
- RMagick is an interface between the Ruby programming language and the MagickCore image processing libraries. Get started with RMagick by perusing the documentation.
- MagickWand for Ruby is an interface between the Ruby programming language and the MagickWand image processing libraries. Get started with MagickWand for PHP by perusing the documentation.
- MiniMagick is a Ruby wrapper for ImageMagick command line. MiniMagick gives you convenient access to all the command line options ImageMagick supports.
- QuickMagick is a gem for easily accessing ImageMagick command line tools from Ruby programs.
- Rust
- MagickRust is a MagickWand bindings for the Rust language.
- Tcl/Tk
- TclMagick a native Tcl-extension to the ImageMagick MagickWand API.
- WebAssembly
- Magick.WASM the WASM library for ImageMagick.
- XML RPC
- RemoteMagick is an XML-RPC web service that creates image thumbnails.