I'm having trouble with getting ImageMagick and Ghostscript to work together - everything seems difficult, from installation, to testing, to actually using the software. Does anyone have any tips?
People often ask us for software testing interview questions and answers. At the bottom / end of this post you will find the link to download the PDF with 202 Software Testing Interview Question and Answers. In this free online Software Testing Tutorial / Manual Testing Tutorial, we cover all manual testing concepts in detail with easy to understand examples. This Software Testing Tutorial / Manual Testing Tutorial is helpful for beginners to advanced level users to learn software testing concepts with practical examples.
Principle 5: Manual and automatic test cases. An effective testing process must include both manually and automatically produced test cases. •Manual tests take advantage of the tester's domain knowledge to do more in-depth testing. •Automatic tests take advantage of tireless machines to do more testing than humans can. 1 Basic Concepts of Design. Software Design Methodology 3 This question relates to understanding when an activity is designing and when. Thus, they test, evaluate and modify their design. Designers compensate for weaknesses exposed during testing and evaluation. They redesign as necessary until they are satisfied.
I've just spent the last three hours getting ImageMagick to play nicely with PHP for a PDF to JPG convert. Instead of documenting it myself locally, I figured I'd write it up here, with all the buzzwords and things I screwed up, so the next noob can save some time.
Tested on two OSs,Windows 7 x64 and Vista x64, with PHP 5.2.8 and Apache 2.2.11.
You'll need Ghostscript and ImageMagick. I got gs871w64.exe
and ImageMagick-6.6.3-0-Q16-windows-x64-dll.exe
.
Do a basic install of ImageMagick (I'll call it IM now). Double check the system path variable to ensure you can IM from anywhere. It should point to the IM directory. Test the installation with this line in cmd
: convert test.gif test.jpg
(assuming you have test.gif
). Works OK.
Test a PDF convert (convert test.pdf test.jpg
). You should get a (long) message about 'gswin32c.exe' and 'Postscript delegate failed' and 'missing an image filename'. That means IM can't find a PDF 'translator'. You need Ghostscript.
Install Ghostscript (I'll call it GS now). I had to do it twice for some reason before it took. Add the 'bin' address in the GS folder to the system variable. Test the installation with gswin32 test.pdf
and you should see your file pop up in the GS viewer. Important note: gs doesn't work in Windows ('gs' is not recognized as an internal or external command, operable program, or batch file.
). You need to use gswin32.
Back to the IM test: convert test.pdf test.jpg
should work now.
Now over to PHP - write up this script:
The 2>&1
will move all errors into the standard output so you can better diagnose stuff :). Now, your PHP script may run in the cmd prompt, but nothing happens when you run it in a browser. Smack your forehead and restart Apache.
Best position for wifi router antenna. • Adjust the router's antennas to improve performance if the best location you find is only marginally acceptable. Avoid electric fans, other motors, and fluorescent lighting. Such appliances include microwave ovens, cordless telephones, baby monitors, and home automation equipment. Appliances that transmit in the 2.4 frequency range are most likely to generate Wi-Fi interference. • Likewise, install the router away from electrical equipment that also generates interference.
pant Exhaustive and probably elementary, I know. But a hopefully helpful summary of approximately 20 pages of semi-helpful clues.
Steve already provided a guide on running the command line version of ImageMagick from PHP. After having a similar experience installing the extension version of ImageMagick, I'd like to elaborate a bit on how the different components work together.
First you'll need the PHP extension. It's basically an adapter between PHP and the ImageMagick functions.
php_imagick.dll
from the extension ZIP to the PHP extension directoryHowever, this is not enough. The php_imagick.dll
does not contain any ImageMagick functionality and the CORE_RL_..
DLLs that come bundled with the extension are not complete. You're gonna need some more DLLs from an ImageMagick release as well.
Theoretically the version doesn't have to match exactly, but apparently somewhere between ImageMagick 6.8.1 and 6.8.8 the function MagickGetImageMatte
has been removed from the DLLs, so the safest way is to find the exact same ImageMagick release that the Imagick extension was build for:
It is not necessary to install ImageMagick. In fact, if you happen to have an incompatible ImageMagick in your PATH, the PHP extension might fail.
This applies to both the command line version of ImageMagick (convert
) and the PHP extension described above.
For reading files of the Postscript family, Ghostscript is needed.
ImageMagick will find Ghostscript following these steps:
GS_DLL
entry in the registry, pointing to the path of gswin32.dll
, it will use that one and ignore the delegates altogether.delegates.xml
next to php5(n)ts.dll
or convert.exe
respectively or in ~.magick
.@PS_Delegate@
in the delegate, it will replace it with gswin32c.exe
and then continue looking for that EXE in the PATH. You can replace this string with the full path to gswin32c.exe
or even gswin64c.exe
that ImageMagick should call.