Page 1 of 1

API library versions?

Posted: 2017-04-29T10:20:54-07:00
by soyxan
Hi,

I want to delelop an application for the RaspberryPi in C++ that will use ImageMagick. I found that there is the Magick++ API but I am not quite sure which version/package I need to install:

Following the instructions on a web site I installed the following package:

Code: Select all

sudo apt-get install libgraphicsmagick++-dev
But while making some test I was not able to find the Image::distort method. So i Thought that maybe I have not installed the right package. So I did a search and I got this:

Code: Select all

apt-cache search dev | grep magick
graphicsmagick-libmagick-dev-compat - image processing libraries providing ImageMagick interface
libghc-hsmagick-dev - FFI bindings to GraphicsMagick library
libgraphicsmagick++1-dev - format-independent image processing - C++ development files
libgraphicsmagick1-dev - format-independent image processing - C development files
libmagick++-6.q16-dev - object-oriented C++ interface to ImageMagick - development files
libmagick++-dev - object-oriented C++ interface to ImageMagick
libmagickcore-6.q16-dev - low-level image manipulation library - development files (Q16)
libmagickcore-dev - low-level image manipulation library -- transition package
libmagickwand-6.q16-dev - image manipulation library - development files
libmagickwand-dev - image manipulation library - transition for development files
So my question is: I have installed the right package? If not which should I install to have the last version of the Magick++ API (and be able to call the Image::distort method).

On the other hand I have seen that there is "other" API called MagickWand. What are the main differences? Any suggestion on which one use (Magick++ or MagickWand)

Thanks!

Re: API library versions?

Posted: 2017-04-29T10:39:29-07:00
by snibgo
soyxan wrote:sudo apt-get install libgraphicsmagick++-dev
Oops. GraphicsMagick isn't ImageMagick. They are different. GM was a fork from IM, many years ago, and the two systems have diverged since then. I know nothing about GM.

I also know nothing about RaspberryPi (although I have dreams about hooking 1000 of them together for a fun image processing machine).

There are three C(++) APIs:

1. MagickCore, for C. This is where the image processing is done. Most of my programming is with MagickCore.

2. MagickWand, for C. This interface is more abstract so easier to use if you don't care about the internals. If you want to understand what is happening, you need to find what calls it makes to MagickCore. Some processing (eg of command lines) is done at this level, not at MagickCore.

3. Magick++, for C++. This is a convenience wrapper around MagickCore and MagickWand for C++. I don't use C++ (unless I really have to).

So, if you prefer C++ then Magick++ is your route.

Re: API library versions?

Posted: 2017-05-01T12:58:37-07:00
by soyxan
As far I can understand, I have to install the package libmagick++, but which one?
libmagick++-6.q16-dev - object-oriented C++ interface to ImageMagick - development files
libmagick++-dev - object-oriented C++ interface to ImageMagick

The idea is to have the last version fo the library.

Re: API library versions?

Posted: 2017-05-01T14:29:09-07:00
by snibgo
Sorry, I don't know what package you need. A search in these forums for "Raspberry" may reveal what other people use.

Re: API library versions?

Posted: 2018-11-22T22:06:11-07:00
by Mice
I want to know that, i have installed ImageMagick and want to use for c++ script. I have included Magick++.h in the code , but not able to compile in rapsberrypi.
For compiling the program i write
g++ main.cpp -I "dir1" -L "dir2".
Can somebody please help me regarding compilation of this.I dont know which path has to be included from ImageMagick to compile the c++ program.
Regards