How to include IM to C++ project?

Questions and postings pertaining to the usage of ImageMagick regardless of the interface. This includes the command-line utilities, as well as the C and C++ APIs. Usage questions are like "How do I use ImageMagick to create drop shadows?".
Post Reply
VanGog
Posts: 308
Joined: 2012-02-05T02:46:58-07:00
Authentication code: 8675308

How to include IM to C++ project?

Post by VanGog »

Can you explain me what I must do when I want to use IM as library in C++ project? I am working with Visual Studio C++ Express 2010 and I would like to open images with IM. I expect I should include some directories and files or libraries which come with IM source. But I don't want to build IM executable, I want just to include only those libraries which are needed to open images (jpg, png, tiff, bmp).

The install page
http://www.imagemagick.org/Magick++/Install.html
contains instructions how to compile it but I want to include it to my own program.

Probably I could use this class
http://www.imagemagick.org/Magick++/Image.html
I need help which directories to include. When I try the first code on the page
I got error
fatal error C1021: invalid preprocessor command 'warning' in magick-config.h

Code: Select all

# warning "you should set MAGICKCORE_QUANTUM_DEPTH to sensible default set it to configure time default"
Even that I added the directory C:\ImageMagick-windows\ImageMagick-6.8.6\
and C:\ImageMagick-windows\ImageMagick-6.8.6\Magick++\lib
to include directories.
VanGog
Posts: 308
Joined: 2012-02-05T02:46:58-07:00
Authentication code: 8675308

Re: How to include IM to C++ project?

Post by VanGog »

I have fixed first problem (I added the recommended command line options to compiler viewtopic.php?f=23&t=22528), but here are new problems:

Code: Select all

c:\imagemagick-windows\imagemagick-6.8.6\magick\magick-type.h(87): error C2146: syntax error : missing ';' before identifier 'SignedQuantum'
c:\imagemagick-windows\imagemagick-6.8.6\magick\magick-type.h(87): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\imagemagick-windows\imagemagick-6.8.6\magick\magick-type.h(87): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
c:\imagemagick-windows\imagemagick-6.8.6\magick\exception.h(157): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\exception.h(157): error C2065: '__printf__' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\exception.h(157): error C3861: '__format__': identifier not found
c:\imagemagick-windows\imagemagick-6.8.6\magick\exception.h(157): error C2072: 'MagickCore::ThrowMagickException' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\exception.h(160): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\exception.h(160): error C2065: '__printf__' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\exception.h(160): error C3861: '__format__': identifier not found
c:\imagemagick-windows\imagemagick-6.8.6\magick\exception.h(160): error C2072: 'MagickCore::ThrowMagickExceptionList' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\locale_.h(68): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\locale_.h(68): error C2065: '__printf__' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\locale_.h(68): error C3861: '__format__': identifier not found
c:\imagemagick-windows\imagemagick-6.8.6\magick\locale_.h(68): error C2072: 'MagickCore::FormatLocaleFile' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\locale_.h(70): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\locale_.h(70): error C2065: '__printf__' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\locale_.h(70): error C3861: '__format__': identifier not found
c:\imagemagick-windows\imagemagick-6.8.6\magick\locale_.h(70): error C2072: 'MagickCore::FormatLocaleFileList' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\locale_.h(72): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\locale_.h(72): error C2065: '__printf__' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\locale_.h(72): error C3861: '__format__': identifier not found
c:\imagemagick-windows\imagemagick-6.8.6\magick\locale_.h(72): error C2072: 'MagickCore::FormatLocaleString' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\locale_.h(74): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\locale_.h(74): error C2065: '__printf__' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\locale_.h(74): error C3861: '__format__': identifier not found
c:\imagemagick-windows\imagemagick-6.8.6\magick\locale_.h(74): error C2072: 'MagickCore::FormatLocaleStringList' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\string_.h(77): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\string_.h(77): error C2065: '__nonnull__' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\string_.h(77): error C2072: 'MagickCore::ConcatenateMagickString' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\string_.h(79): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\string_.h(79): error C2065: '__nonnull__' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\string_.h(79): error C2072: 'MagickCore::CopyMagickString' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\string_.h(101): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\string_.h(101): error C2065: '__nonnull__' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\string_.h(101): error C2072: 'MagickCore::ConcatenateStringInfo' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(94): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(94): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(94): error C2072: 'MagickCore::CloseCacheView' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(95): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(95): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(95): error C2072: 'MagickCore::OpenCacheView' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(98): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(98): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(98): error C2072: 'MagickCore::AllocateString' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(100): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(100): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(100): error C2072: 'MagickCore::InterpretImageAttributes' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(101): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(101): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(101): error C2072: 'MagickCore::PostscriptGeometry' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(103): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(103): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(103): error C2072: 'MagickCore::TranslateText' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(107): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(107): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(107): error C2072: 'MagickCore::GetImageClippingPathAttribute' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(108): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(108): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(108): error C2072: 'MagickCore::GetNextImageAttribute' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(111): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(111): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(111): error C2072: 'MagickCore::AcquireCacheViewIndexes' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(112): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(112): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(112): error C2072: 'MagickCore::AcquireIndexes' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(115): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(115): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(115): error C2072: 'MagickCore::AcquirePixels' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(118): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(118): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(118): error C2072: 'MagickCore::AcquireCacheViewPixels' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(120): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(120): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(120): error C2072: 'MagickCore::AcquireImagePixels' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(126): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(126): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(126): error C2072: 'MagickCore::AllocateImage' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(129): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(129): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(129): error C2072: 'MagickCore::ExtractSubimageFromImage' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(131): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(131): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(131): error C2072: 'MagickCore::GetImageFromMagickRegistry' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(133): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(133): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(133): error C2072: 'MagickCore::GetImageList' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(134): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(134): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(134): error C2072: 'MagickCore::GetNextImage' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(135): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(135): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(135): error C2072: 'MagickCore::GetPreviousImage' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(136): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(136): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(136): error C2072: 'MagickCore::FlattenImages' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(141): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(141): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(141): error C2072: 'MagickCore::MosaicImages' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(142): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(142): error C2065: 'deprecated' : undeclared identifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(142): error C2072: 'MagickCore::PopImageList' : initialization of a function
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(144): error C3646: '__attribute__' : unknown override specifier
c:\imagemagick-windows\imagemagick-6.8.6\magick\deprecate.h(144): fatal error C1003: error count exceeds 100; stopping compilation
  Generating Code...
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
what am I missing?
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: How to include IM to C++ project?

Post by fmw42 »

I know nothing about C++, but see http://www.imagemagick.org/script/magick++.php and documentation links there, especially http://www.imagemagick.org/Magick++/tut ... torial.pdf
VanGog
Posts: 308
Joined: 2012-02-05T02:46:58-07:00
Authentication code: 8675308

Re: How to include IM to C++ project?

Post by VanGog »

Useful information. Thanks. I have found that I need
Cygwin & GCC
It is possible to build both ImageMagick and Magick++ under the Cygwin Unix-emulation environment for Windows NT. Obtain and install Cgywin from http://www.cygwin.com/ . An X11R6 environment for Cygwin is available from http://www.cygwin.com/xfree/
Anybody has idea if I can use compiled version or do I need to compile?
Post Reply