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
 ImageEn crashes Google NIK
 New Topic  Reply to Topic
Author Previous Topic Topic Next Topic  

am24

30 Posts

Posted - Apr 28 2015 :  10:51:37  Show Profile  Reply
Figured out a weird behavior:

When I open and save a JPEG image with ImageEn, I can no longer open it in Google NIK collection, for example NIK Color Efex Pro (NIK crashes in that case).

Steps to reproduce:

1. Open JPG in NIK Color Efex Pro --> everything works
2. Open JPG in ImageEn, eg. with Demo program FullApps\PhotoEn\ImageEx.exe
3. Save JPG with FullApps\PhotoEn\ImageEx.exe
4. Open JPG in NIK Color Efex Pro --> CRASH !!!
5. Remove all EXIF information from JPG (using EXIFTOOL)
6. Open JPG in NIK Color Efex Pro --> everything works

Seems that ImageEn does something with the EXIF data that let Google NIK collection crash.

Tested with the latest version ImageEn 6.0, Delphi XE5, latest version of Google NIK collection. I observed that NIK crash over months, but was not able to figure out the relationship to ImageEn until today.

This also happens with the PhotoEn3 demo app that can be downloaded directly from your server.
http://www.imageen.com/cgi-bin/dlredirect.asp?demo=run/FullApps/PhotoEn3/ImageEx.exe

xequte

38510 Posts

Posted - Apr 28 2015 :  17:09:19  Show Profile  Reply
Hi

Does it still happen if you call ImageEnView1.IO.Params.ResetEXIF; or .ResetInfo before saving?



Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
Go to Top of Page

am24

30 Posts

Posted - Apr 29 2015 :  03:20:58  Show Profile  Reply
Using "ResetEXIF" or "ResetInfo" fixes that problem.

Further things I could now figure out:
- It only happens with JPEG and TIF images that were exported from Lightroom or CaptureOne
- It does not happen with images exported from DXO or with OOC JPEGs

So the current status is:
- Images exported from Lightroom or CaptureOne can be opened in NIK without problems
- These images saved with ImageEn causes a NIK crash
- These images saved with ImageEn (+ ResetEXIF/ResetInfo) can be opened in NIK without problems

This is fully reproducible on my PC.
Go to Top of Page

xequte

38510 Posts

Posted - Apr 30 2015 :  02:49:48  Show Profile  Reply
OK, now compare the EXIF in the images before and after saved by ImageEn. Try resetting those changes in code before the save and see if NIK still crashes.

Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
Go to Top of Page

am24

30 Posts

Posted - Apr 30 2015 :  05:50:24  Show Profile  Reply
Exif values seem to be equal, but I could now figure out the root of that problem.

It happens when Exif_Model is less than 5 characters. In that case, ImageEn uses WriteMiniString which seems to cause that problem. I could already implement a workaround here.

BTW, it didn't happen with DXO and OOC JPGs because the Exif_Model contained trailing spaces which were stripped by Lightroom and C1 (so WriteMiniString was only used in combination with LR and C1).
Go to Top of Page

xequte

38510 Posts

Posted - Apr 30 2015 :  15:56:38  Show Profile  Reply
Hi

I cannot see any indication in the standard or elsewhere that there should be a minimum length imposed on the Exif Model tag. So I have to assume it is an issue in the NIK software.


Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
Go to Top of Page

am24

30 Posts

Posted - May 01 2015 :  04:19:00  Show Profile  Reply
quote:
I cannot see any indication in the standard or elsewhere that there should be a minimum length imposed on the Exif Model tag. So I have to assume it is an issue in the NIK software.


It's of course not a matter of minimum length, it also works with JPGs from Lightroom where the Exif_Model length is exactly 4 characters. Probably NIK as a bit more sensitive than other software, but it only happens in combination with ImageEn.

Further tests show that it only fails with ImageEn when Exif_Model has a length of exactly 4 characters, it works correctly with less or more than 4 characters. Probably because of a missing null character when length(ss)=sizeof(dword) in TIETIFFIFDWriter.WriteMiniString?

OK, whether NIK or ImageEn, it's easy to work around that incompatibility so I think we can close that issue here.
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
Jump To: