ImageEn for Delphi and C++ Builder ImageEn for Delphi and C++ Builder
ImageEn Forum
Profile    Join    Active Topics    Forum FAQ    Search this forumSearch
Forum membership is Free!  Click Join to sign-up
Username:
Password:
Save Password
Forgot your Password?

 All Forums
 ImageEn Library for Delphi, C++ and .Net
 ImageEn and IEvolution Support Forum
 ImageMagic.DLL 64-bit
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

spetric

Croatia
263 Posts

Posted - May 13 2020 :  05:32:41  Show Profile  Reply
Hi,

Where I can download imagemagic.dll 64-bit version without downloading full installation. I have 32-bit version only from 2005. If there is also newst 32-bit version it would bi nice.

TIA,
Siniša

kturkay

9 Posts

Posted - May 13 2020 :  17:02:35  Show Profile  Reply
Hi!,
is it that what you are looking for?
ImageMagick-7.0.10-11-Q16-x64-dll.exe
https://imagemagick.org/script/download.php#windows
Go to Top of Page

xequte

5227 Posts

Posted - May 13 2020 :  17:11:47  Show Profile  Reply
Hi Sinisa

I cannot find a way to download them without using the installer.

Nigel
Xequte Software
www.imageen.com
Go to Top of Page

spetric

Croatia
263 Posts

Posted - May 15 2020 :  04:31:48  Show Profile  Reply
Thanks,

I'll run complete installation on virtual machine and extract DLL.
Go to Top of Page

spetric

Croatia
263 Posts

Posted - May 15 2020 :  12:30:38  Show Profile  Reply
I forgot,

what version to download to suite ImageEn 8.1.1?
Q8 or Q16?

BTW, I've downloaded Q16-64-bitDLL version and there is no file named imagemagic.dll?

My code:


if (_dataKeeper->SettingParams->ImageMagick)
   IEAddExtIOPlugin("imagemagick.dll");    


Go to Top of Page

xequte

5227 Posts

Posted - May 17 2020 :  04:04:02  Show Profile  Reply
Hi Spetric

I don't think from ImageEn's perspective it matters whether it is Q8 or Q16.

imagemagick.dll refers to the old ImageMagick support file that is available on the download page:

https://www.imageen.com/download/

The advantage of the imagemagick.dll is the user does not need to install ImageMagick to support the wider formats. However the DLL is old and does not support many of the newer ImageMagick features.

Nigel
Xequte Software
www.imageen.com
Go to Top of Page

xequte

5227 Posts

Posted - May 17 2020 :  04:09:43  Show Profile  Reply
Hi Spetric,

Sorry, in re-reading this thread, it sounds like you are trying to find the "latest ImageMagick.dll" in the installation to replace the older one from our download page.

Sorry, that is not possible. ImageMagick.dll is an *old* DLL that we created to support ImageMagick formats. Unfortunately it no longer became possible to compile it with the newer ImageMagick releases, so we switched instead to supporting the installed version of ImageMagick on the system.

In other words, there are two ways of making ImageEn use ImageMagick:

1. The ImageMagick.dll from our web page. You can ship it with your application, user does not need to isntall anything, but it is an old DLL without support for newer ImageMagick features

2. Install ImageMagick: Your users also need to install it. As best as I can determine it is not possible to ship a standalone version of ImageMagick

Nigel
Xequte Software
www.imageen.com
Go to Top of Page

spetric

Croatia
263 Posts

Posted - May 18 2020 :  16:52:56  Show Profile  Reply
Hi Nigel,

Thanks for info. I've checked ImageMagick documentation and some forum posts and it seems the best option is to build ImageMagick from the source. If I grab some time I'll investigate if it's possible to build a single DLL for those extra image formats.
Go to Top of Page

xequte

5227 Posts

Posted - May 18 2020 :  18:12:29  Show Profile  Reply
Hi Spetric,

Yes, it would be cool to do an updated standalone ImageMagick DLL. Please email me if you need any help from our side.



Nigel
Xequte Software
www.imageen.com
Go to Top of Page

spetric

Croatia
263 Posts

Posted - May 22 2020 :  17:04:17  Show Profile  Reply
Well, I played a bit with ImageMagick source code and tried two scenarios:

1. I've built single 32-bit DLL from ImageMagick static libraries (complete). DLL was arround 12MB of size and exported ImageMagick APIs specified in iemiscplugins.pas, but it did not work. To make it work, too much hacking should be involved.

2. I've built ImageMagick dynamic version (32-bit) and got a bunch of DLLs (CORE_RL*.DLL and IM_MOD_RL*.DLL). I've copied them to directory where my exe resides, changed this part of code

if (_dataKeeper->SettingParams->ImageMagick)
   IEAddExtIOPlugin("imagemagick.dll");    


to

if (_dataKeeper->SettingParams->ImageMagick)
   IEAutoLoadIOPlugins();


and to my surprise it worked. I've tested few SVGs and one MIFF file I've found on the web. Now, I'll try to get rid of some formats (DLLs) that ImageEn does not support.

Does ImageEn initialize ImageMagick via Magick++ or MagickCore and MagockWand is enough?
Go to Top of Page

xequte

5227 Posts

Posted - May 23 2020 :  03:42:38  Show Profile  Reply
Hi

Can you upload the DLL's somewhere so I can test them at my end?

Nigel
Xequte Software
www.imageen.com
Go to Top of Page

spetric

Croatia
263 Posts

Posted - May 23 2020 :  15:46:15  Show Profile  Reply
Of course,

Here it is: http://www.sigmapi-design.com/archive/im_test_q16_32.zip
Note: inside this zip archive you'll find a file delegates.xml.
Inside this file, you'll see a path (my path-example) to portable Ghostscript command line interpreter gswin32c.exe.

It shows PDF in ImageEnView, but with some default resolution.
Anyway, if you have installed Ghostscript, rename or remove delegates.xml file.
If you have portable GhostScript, adjust the path in delegates.xml.

Very strange that ImageMagick uses exe file for converting PDF to some raster format when there is DLL that actually does the job (gsdl32.dll or gsdl64.dll).
gswin32c.exe (200kb) just parses the input and calls gsdl32.dll.

Ghostscript API documentation: https://www.ghostscript.com/doc/current/API.htm.

Can you tell me what DLLs we can get rid off (like cairo, etc..) in order to get a smaller package for ImageEn?
Go to Top of Page

spetric

Croatia
263 Posts

Posted - May 25 2020 :  16:08:59  Show Profile  Reply
BTW,

When I've mentioned GhostScript, is there some ImageEn IO plug-in documentation?

By that, I mean some documentation on how to write IO plug-in, so that I can write a wrapper for GhostSrcipt DLL interpreter in order to read PDF directly using GhostScript DLL: ImageEnIO -> wrapperXX.dll -> gsdlXX.dll.
Go to Top of Page

xequte

5227 Posts

Posted - May 25 2020 :  18:10:16  Show Profile  Reply
Nice one, Spetric, it does work.

I cannot find documentation describing the ImageMagick DLL files, so we'd need to look at the ImageMagick source code to know for sure which are required. It might just be easier to slowly eliminate them to see if it affects functionality (I see that eliminating CORE_RL_exr_.dll, CORE_RL_libraw_.dll, etc, does not seem to break it).

There is not documentation for ImageEn IO plug-in functionality, unfortunately. Have you looked at the iemiscplugins source? I've emailed you a dummy template unit. Let me know what else I can do at this end.



Nigel
Xequte Software
www.imageen.com
Go to Top of Page

spetric

Croatia
263 Posts

Posted - May 27 2020 :  12:03:12  Show Profile  Reply
Hi Nigel,

Thanks for info.

As I see from dummy template unit, there is no "automatic" plug-in in the sens that user can write some image XYZ format as DLL plug-in with "ImageEn specified" APIs then let ImageEn load it with IEAddExtIOPlugin (like Photoshop 8bf plug-ins).

From iexBitmap.pas unit, only some predefined DLLs are supported: jbiglib.dll, imagemagick.dll.

Maybe I'm wrong or missing something, but custom user defined plug-ins are supported via user written class linked together with user application. Is that correct?

If so, I can write a class that will call GhostScript DLL (or gs exe) to convert PDF to bitmaps (or multi-page tiff) and then load it to let's say some MView.

But first, I'll build 64-bit ImageMagick DLLs, pack them and upload for testing.

Edit: Done. Here it is https://sigmapi-design.com/archive/im_test_q16_64.zip

Note: the same trick with delegates.xml but with path to gswin64c.exe.
Go to Top of Page

xequte

5227 Posts

Posted - May 31 2020 :  23:25:31  Show Profile  Reply
Hi Spetric

I'm unable to get the DLLs to work with PDF files.

I've downloaded the portable version and updated the path in delegates.xml, but it silently fails.

I can use gswin32c.exe to rasterize PDF files as images, and we could write an ImageEn plug-in to support PDF loading using this method, but as far as I am aware, the Ghostscript license does not allow the files to be shipped, so it is not a good solution.

WPCubed's plug-in is only EU59 and has no limitations on distribution:

https://www.imageen.com/WPViewPDF/

Nigel
Xequte Software
www.imageen.com
Go to Top of Page

spetric

Croatia
263 Posts

Posted - Jun 01 2020 :  08:04:32  Show Profile  Reply
Hi Nigel,

I don't have any problems reading PDF via GhostScript, however path to portable GhostScript exe in delegates.xml must be specified not only for pdf, but for all other gs delegated formatas (ps, eps), otherwise it won't work (I don't know why). Anyway, I will install non-portable Ghostscript and see if it works without delegates.xml (it should, according to documentation).


I have WPViewPDF 3.0 Plus and also Gnostice PDF kit, but only GhostSript renders/converts some PDFs with floating forms/layers correctly (I don't know for WPViewPDF version 4.0).

Regarding ImageMagick, I have uploaded 64-bit DLLs and also tested minimum set of DLLs to be able to work as ImageEn plug-in...well, except JBIG. I have tested it on some sample JBGs, but it does not work.

If you have some JBG/BIE image that opens correctly on your side, please upload it so that I can test it.





Go to Top of Page

xequte

5227 Posts

Posted - Jun 01 2020 :  18:22:59  Show Profile  Reply
Sorry Spetric,

You are right. If you update all of the paths in the delegates.xml file, then PDF files load.

Even better, if the portable Ghostscript files are in your exe folder (or on the system path), you don't need to hardcode the path at all, just gswin32c.exe

It does not load some formats for me, such as JBIG.

Can I make your ImageMagick files available on our download page? Do you have an info file you want me to include?

Nigel
Xequte Software
www.imageen.com
Go to Top of Page

spetric

Croatia
263 Posts

Posted - Jun 02 2020 :  07:55:17  Show Profile  Reply
Hi Nigel,

Of course, you can make ImageMagick available on ImageEn download page,
but you must include ImageMagick LICENCE file: https://imagemagick.org/script/license.php

You can also remove all IM_MOD_ formats not supported by ImageEn.
I'm still trying to make a minimal package. I thought that CORE_RL_Cario wasn't necessaray, but alas...it must be included, because .PES extension want open without CORE_RL_Cairo...what a mess.

So far, there is no need to CORE_RL_(libraw, exr, flif, Magick++). I still haven't tested loading MPEGs. Formats that work OK (without GS):

CIN, DDS, FITS, MIFF, MNG, PCD, PES and SVG.


Regarding GhostsScript portable, you're right. If you copy Ghostsrcipt to exe folder, you don't need any delegates file. Also, from ImageMagick forum, search sequence for GhostScript is:

1. ImageMagick tries to find GhostSript via GS_PATH (or something like this). This is a situation when GhostScript is installed (non-portable version).
2. It checks for delegates.xml file.
2. It looks for GhostScript in the exe folder.

The version of uploaded ImageMagick is ImageMagick-7.0.10-13-Q16
for both 32 and 64 bit versions.

If you need some other build (Q8), please let me know.

BTW, JBIG does not open even with original IMDisplay.exe.
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To: