Page 2 of 2

Re: problems with Magick::Pixels

Posted: 2017-11-05T06:32:35-07:00
by Straton
Good idea, thanks. I will check that. I am new to Mac/Linux, so maybe I did something wrong when installing ImageMagick. What I need in the end is a multi platform configuration.

Background is that I rewrite my App to work with Windows and Mac, using a Qt interface. Image processing and ImageMagick are in a separate shared library, using CMake. Maybe the lib path is pointing to a macports installation of ImageMagick, which I don‘t need anyway, so maybe the first step is to remove it.

Re: problems with Magick::Pixels

Posted: 2017-11-05T06:33:52-07:00
by Straton
Good idea, thanks. I will check that. I am new to Mac/Linux, so maybe I did something wrong when installing ImageMagick. What I need in the end is a multi platform configuration.

Background is that I rewrite my App to work with Windows and Mac, using a Qt interface. But image processing and ImageMagick are in a separate shared library, using CMake. Maybe the lib path is pointing to a macports installation of ImageMagick, which I don‘t need anyway, so maybe the first step is to remove it.

Re: problems with Magick::Pixels

Posted: 2017-11-05T06:38:19-07:00
by Straton
Ah this forum uses pages. Sorry for double posting, I was missing my post but then I realized it is not on the first page

Re: problems with Magick::Pixels

Posted: 2017-11-05T06:50:43-07:00
by Straton
The CMake configuration I use for ImageMagick is:

Code: Select all

set(IMAGEMAGICK_DIR ${CMAKE_BINARY_DIR}/../../ImageMagick)
include_directories(${IMAGEMAGICK_DIR}/Magick++/lib ${CMAKE_BINARY_DIR}/../../ImageMagick)
target_link_libraries(StratonImageProcessing ${IMAGEMAGICK_DIR}/Magick++/lib/.libs/libMagick++-7.Q16HDRI.3.dylib)
So at least I use the same base directory, which I retrieved from the git repo:

Code: Select all

origin	https://github.com/ImageMagick/ImageMagick.git (fetch)
origin	https://github.com/ImageMagick/ImageMagick.git (push)
I'm sorry for posting the output of my macports installation, which caused severe conflicts with brew on my Mac, I have to get rid of it somehow. But it is not influencing my build as you see above. To build it from my git clone, I executed:

Code: Select all

./configure --prefix=/opt --with-quantum-depth=16 --disable-dependency-tracking --without-perl
make
sudo make install
So as you explained, this created a library that uses float as Quantum, though the headers use uint16_t. How can I make sure that the dylib and the headers are consistent?

Re: problems with Magick::Pixels

Posted: 2017-11-05T06:54:14-07:00
by Straton
maybe I should add that after the build, I have just the HDRI dylib in the output folder, no alternative:

Code: Select all

~/git/ImageMagick/Magick++/lib/.libs> ls -l
total 22360
-rw-r--r--  1 stefan  staff   118528 29 Aug 22:44 Magick___lib_libMagick___7_Q16HDRI_la-Blob.o
-rw-r--r--  1 stefan  staff   105748 29 Aug 22:44 Magick___lib_libMagick___7_Q16HDRI_la-BlobRef.o
-rw-r--r--  1 stefan  staff   117768 29 Aug 22:44 Magick___lib_libMagick___7_Q16HDRI_la-CoderInfo.o
-rw-r--r--  1 stefan  staff   254076 29 Aug 22:44 Magick___lib_libMagick___7_Q16HDRI_la-Color.o
-rw-r--r--  1 stefan  staff   930828 29 Aug 22:44 Magick___lib_libMagick___7_Q16HDRI_la-Drawable.o
-rw-r--r--  1 stefan  staff   532520 29 Aug 22:44 Magick___lib_libMagick___7_Q16HDRI_la-Exception.o
-rw-r--r--  1 stefan  staff   102840 29 Aug 22:44 Magick___lib_libMagick___7_Q16HDRI_la-Functions.o
-rw-r--r--  1 stefan  staff   168396 29 Aug 22:44 Magick___lib_libMagick___7_Q16HDRI_la-Geometry.o
-rw-r--r--  1 stefan  staff   895724 29 Aug 22:44 Magick___lib_libMagick___7_Q16HDRI_la-Image.o
-rw-r--r--  1 stefan  staff   127860 29 Aug 22:44 Magick___lib_libMagick___7_Q16HDRI_la-ImageRef.o
-rw-r--r--  1 stefan  staff   137748 29 Aug 22:44 Magick___lib_libMagick___7_Q16HDRI_la-Montage.o
-rw-r--r--  1 stefan  staff   197444 29 Aug 22:44 Magick___lib_libMagick___7_Q16HDRI_la-Options.o
-rw-r--r--  1 stefan  staff   237788 29 Aug 22:44 Magick___lib_libMagick___7_Q16HDRI_la-Pixels.o
-rw-r--r--  1 stefan  staff    68544 29 Aug 22:44 Magick___lib_libMagick___7_Q16HDRI_la-ResourceLimits.o
-rw-r--r--  1 stefan  staff   533068 29 Aug 22:44 Magick___lib_libMagick___7_Q16HDRI_la-STL.o
-rw-r--r--  1 stefan  staff   453940 29 Aug 22:44 Magick___lib_libMagick___7_Q16HDRI_la-Statistic.o
-rw-r--r--  1 stefan  staff    76608 29 Aug 22:44 Magick___lib_libMagick___7_Q16HDRI_la-Thread.o
-rw-r--r--  1 stefan  staff    65780 29 Aug 22:44 Magick___lib_libMagick___7_Q16HDRI_la-TypeMetric.o
-rwxr-xr-x  1 stefan  staff   967776 29 Aug 22:44 libMagick++-7.Q16HDRI.3.dylib
-rw-r--r--  1 stefan  staff  5293088 29 Aug 22:44 libMagick++-7.Q16HDRI.a
lrwxr-xr-x  1 stefan  staff       29 29 Aug 22:44 libMagick++-7.Q16HDRI.dylib -> libMagick++-7.Q16HDRI.3.dylib
lrwxr-xr-x  1 stefan  staff       27 29 Aug 22:44 libMagick++-7.Q16HDRI.la -> ../libMagick++-7.Q16HDRI.la
-rw-r--r--  1 stefan  staff     1554 29 Aug 22:44 libMagick++-7.Q16HDRI.lai

Re: problems with Magick::Pixels

Posted: 2017-11-05T07:17:10-07:00
by snibgo
Straton wrote:How can I make sure that the dylib and the headers are consistent?
Something like this:

Code: Select all

#if defined(MAGICKCORE_HDRI_SUPPORT)
  printf ("Header says we have HDRI\n");
#else
  printf ("Header says we have integer, not HDRI\n");
#endif

  printf ("Library says features are: %s\n", GetMagickFeatures());

Re: problems with Magick::Pixels

Posted: 2017-11-05T07:24:22-07:00
by Straton

Code: Select all

Debugging starts
Header says we have integer, not HDRI
But this we already know. By "make sure" I meant to achieve. Since the make commands I used lead to build result that is inconsistent with the headers, which make switches do I need to get a non-HDRI binary, consistent with the headers?

Re: problems with Magick::Pixels

Posted: 2017-11-05T07:47:24-07:00
by snibgo
For me, it is a ./configure option: "--disable-hdri". And check the output is as expected.

Re: problems with Magick::Pixels

Posted: 2017-11-05T08:57:55-07:00
by Straton
That solved the issue, thank you very much indeed! Before posting I searched endlessly for the problem, because I thought build headers and binaries are consistent for sure, because I build it from the git repo.

When omitting --disable-hdri headers and binaries to not match, so apparently there is no generated configuration header as other libraries use, e. g. wxWidgets. Probably with HDRI the idea is to include other headers, I don't know, I don't need it anyway.

Just a side remark: The binaries I originally used for posting were not from my macports installation - which I successfully uninstalled now -, but they are belonging to the build (since the build date matches)

Code: Select all

~> ls -l ~/git/ImageMagick/Magick++/lib/.libs/libMagick++-7.Q16HDRI.3.dylib 
-rwxr-xr-x  1 stefan  staff  967776 29 Aug 22:44 /Users/stefan/git/ImageMagick/Magick++/lib/.libs/libMagick++-7.Q16HDRI.3.dylib
~> ls -l /opt/bin/magick
-rwxr-xr-x  1 root  wheel  14736 29 Aug 22:44 /opt/bin/magick
After rebuild now, both the dylib and the tools are updated:

Code: Select all

~> ls -l ~/git/ImageMagick/Magick++/lib/.libs/libMagick++-7.Q16.3.dylib
-rwxr-xr-x  1 stefan  staff  954164  5 Nov 15:53 /Users/stefan/git/ImageMagick/Magick++/lib/.libs/libMagick++-7.Q16.3.dylib
~> ls -l /opt/bin/magick
-rwxr-xr-x  1 root  wheel  14736  5 Nov 15:53 /opt/bin/magick

~> /opt/bin/magick --version
Version: ImageMagick 7.0.7-0 Q16 x86_64 2017-11-05 http://www.imagemagick.org
Copyright: © 1999-2017 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC 
Delegates (built-in): bzlib fontconfig freetype gvc jng jp2 jpeg lcms lzma pangocairo png tiff webp xml zlib