ImageEn for Delphi and C++ Builder ImageEn for Delphi and C++ Builder

 

ImageEn Forum
Profile    Join    Active Topics    Forum FAQ    Search this forumSearch
 All Forums
 ImageEn Library for Delphi, C++ and .Net
 ImageEn and IEvolution Support Forum
 Problem with HEIF DLLs

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

View 
UserName:
Password:
Format  Bold Italicized Underline  Align Left Centered Align Right  Horizontal Rule  Insert Hyperlink   Browse for an image to attach to your post Browse for a zip to attach to your post Insert Code  Insert Quote Insert List
   
Message 

 

Emoji
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Black Eye [B)]
Frown [:(] Shocked [:0] Angry [:(!] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

 
Check here to subscribe to this topic.
   

T O P I C    R E V I E W
jenswahl Posted - Nov 05 2026 : 17:20:54
Hello,

I save all ImageEn-DLLs in an own folder named LibImageEn which lies in the same folder like the exe-file. It works with all DLLs but not with HEIF - this DLLs MUST lie in the exe-Folder, otherwise it does not working with HEIF- and HEIC-files, AVIF-files work properly - this should be the same DLLs? I am using a 64-bit-exe with this code (sPath is the path to the exe-file-folder). Removing the last backslash do not work too. I also tried it to register all DLLs in one function call:

        IEGlobalSettings().JPEGEngine      := ieenDLL;
        IEGlobalSettings().PNGEngine       := ieenDLL;
        IEGlobalSettings().JPEG2000Engine  := ieenDLL;
        IEGlobalSettings().CameraRawEngine := ieenDLL;
        IEGlobalSettings().HeifEngine := ieenDLL;
        IEGlobalSettings().WebPEngine := ieenDLL;
        IEGlobalSettings().RegisterPlugIns(sPath + 'LibImageEn\', [iepiHeif] );
        IEGlobalSettings().RegisterPlugIns(sPath + 'LibImageEn\', [iepiWebP] );
        IEGlobalSettings().RegisterPlugIns(sPath + 'LibImageEn\', [iepiLanguages] );

In the DLL-Folder are the correct 64-bit DLLs. What can I do to store the HEIF-DLLs in the LibImageEn-folder?

Kind regards

Jens
6   L A T E S T    R E P L I E S    (Newest First)
xequte Posted - Nov 08 2026 : 02:32:08
Hi Jens

Sorry for the confusion. v15.4.0 was the pre-release. v15.5.0 is the official release.

Nigel
Xequte Software
www.imageen.com
jenswahl Posted - Nov 05 2026 : 19:51:17
Thank you, Nigel, for the fast answer and solution.

I still didn't got the e-mail because the update - is this now 15.5.0 or 15.4.0 - both values are in the same article here?

Kind regards and good night - we have 2:50am now here.

Jens
xequte Posted - Nov 05 2026 : 18:28:54
Hi Jens

Thanks for the report. Your version of ImageEn uses libheif.dll, which depends on three codec DLLs (dav1d.dll, de265.dll, libx265.dll). Windows looks for those dependencies in the EXE folder, not in the folder libheif.dll was loaded from, so they can’t be in a subfolder.

This is resolved in the current version of ImageEn, which uses a single stand-alone DLL (ieheif32.dll/ieheif64.dll) with no dependencies, so it can be placed in any folder you pass to RegisterPlugIns().

If you can’t update yet, you can add the subfolder to the DLL search path before registering the plug-ins:

SetDllDirectory( PChar( sPath + 'LibImageEn' ));
IEGlobalSettings().RegisterPlugIns( sPath + 'LibImageEn\', [ iepiHeif, iepiWebP, iepiLanguages ]);


Nigel
Xequte Software
www.imageen.com
jenswahl Posted - Nov 05 2026 : 18:03:55
Another additional:
I tested some with this result:

The libheif.dll file itself is NOT affected by this; all three of the others MUST be located in the EXE folder in order for HEIF images to be displayed.

Jens
jenswahl Posted - Nov 05 2026 : 17:30:43
correctly is it without the colon:
- IEGlobalSettings().ActiveWebPEngine = ieenDLL
- IEGlobalSettings().ActiveHEIFEngine = ieenNone

www.inntalsoftware.de/en/
jenswahl Posted - Nov 05 2026 : 17:28:28
An addition:
After the block above I get for
- IEGlobalSettings().ActiveWebPEngine := ieenDLL
- IEGlobalSettings().ActiveHEIFEngine := ieenNone
if the DLLs lies only in the LibImageEn-Folder. If they are stored in the exe-folder both give back ieenDLL.

Jens