Locating ImageMagick on a Macintosh Computer
QUESTION: I have installed ImageMagick on my computer but the Coyote Graphics commands can't seem to find it. What do I need to do make it available to them?
ANSWER: The Coyote Graphics routines look for ImageMagick by spawning the ImageMagick convert command inside the Coyote Library function, cgHasImageMagick. If the command is not found an error is generated and cgHasImageMagick returns a 0. If no error is generated, the function returns a 1.
This means, in general, that the shell running IDL must have its PATH environment variable set to include the path to the ImageMagick convert command. Otherwise, ImageMagick will not be found, even if it is installed. On Windows and UNIX machines the path is typically set up properly when ImageMagick is installed. The Macintosh computer is a special case, however, and requires a different procedure.
I don't have a Macintosh computer to test on, so I am flying a little bit blind here. This is what I have been told by people who have figured out what needs to be done. If you have a better idea or explanation, I am more than happy to hear it.
Here is how I understand the problem. On most UNIX systems, a shell is spawned to start a process. The shell has its own environment variables. This apparently only happens on Macintosh computers if a program is run from the command line. If the program is run as an application (*.app), then the environment variables are determined by an XML file called environment.plist.
If ImageMagick is installed via MacPorts, then the convert command lives in /opt/local/bin/. It is this directory that needs to get on the PATH environment variable. Users have solved this problem in a couple of ways.
- One way is to use the IDL SetEnv command in an IDL start-up file. The command
will look like this.
IDL> SetEnv, 'PATH=/opt/local/bin:$PATH'
- Or, you could put a softlink to the ImageMagick convert command into this directory, pointing to the actual location where the command is installed.
- Or, you can open the the environment.plist file and look for the PATH key and add the ImageMagick bin directory to the path you find there.
After restarting IDL, you can test to see if your path is set propertly by running cgHasImageMagick. If it returns 1, it has found ImageMagick. It will return a 0 if ImageMagick cannot be found.
IDL> Print, cgHasImageMagick() 1
In IDL 8.x it is possible that even if you install ImageMagick correctly, you will still have trouble spawning an ImageMagick command. The solution to this problem can be found in this article.
Version of IDL used to prepare this article: IDL 7.0.1.