Search code examples
dllimagemagickstatic-librariesimagemagick-convert

Does ImageMagick's resize command (mogrify) require any DLLs?


I downloaded the no-installer version of ImageMagick (ImageMagick-6.8.6-8-Q16-x86-windows.zip) to use in a project, but it's quite big at 123MB.

I only need mogrify.exe to do a simple image resize. I copied it to a separate directory, and it runs fine, but I'm not sure whether I already have some of the required DLLs (the user may not have these).

I ran Process Explorer on mogrify, but it said there were no DLLs in use by the image.

Is this correct or do I also need to include any of these?

atl100.dll mfc100.dll msvcp100.dll msvcr100.dll vcomp100.dll X11.dll Xext.dll

(full list from the zip file)

I believe vcomp100.dll is part of the Visual C++ redistributable, so I guess I should include this, in case that isn't installed on the user's machine?

On the flip-side, X11.dll looks unnecessary.

Is there an easier way to figure this out, other than researching each individual DLL?


Solution

  • The vcomp100.dll library is the only dependency for resizing within mogrify.exe. For safety, you should re-distribute that DLL in the same directory as the executable.

    Is there an easier way to figure this out, other than researching each individual DLL?

    I can't answer what the easiest method would be (outside of reading each libraries documentation), but I would highly suggest authoring a unit test to ensure all the expect functionality of your requirements are meet. I was able to run a test suite on a vanilla install of XP (via VirtualBox), and confirmed that resizing of PNG, JPEG, and basic drawing work without additional dependencies.