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
 EXIF rotation and Camera RAW files

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
Patrick Quinn Posted - Aug 25 2011 : 14:46:40
Hi

I am getting some strange things happening when using an ImageEnView and EnableAdjustOrientation with RAW files taken in portrait mode.

(RAW files are from a Nikon D50 SLR.)

When using the dcrawlib dll:
If EnableAdjustOrientation is false, EXIF rotation is WORKING on RAW files.
If EnableAdjustOrientation is true, EXIF rotation seems to be applied TWICE, as the displayed image is 180 degrees different to the thumbnail.

(When NOT using the dcrawlib dll EnableAdjustOrientation seems to have no effect on images displayed from RAW files.)

Am I doing anything wrong? Or have I hit a bug?
Is dcrawlib always applying EXIF rotation, and the ImageEnView applies it again if EnableAdjustOrientation is true? That would explain it, I think.

........................................

I have found this work-around:
(I want EXIF rotation, and am using dcrawlib.)

Before loading the image I check the ImageEnMView that has loaded a thumbnail with this:

with ImageEnMViewThumbnails do
ImageEnView.IO.Params.EnableAdjustOrientation := not (FindFileFormat(ImageFileName[SelectedImage]) = ioDLLPLUGINS);

This way, EnableOrientation is switched switched off for RAW images but switched on for everything else. EXIF rotation then works on all types of EXIF images that have it.

One question: in the helpfile under TIOFileType it says the constant for External plugins (ie dcraw) is ioDLLPLUGINS + offset.
What does '+ offset' mean? Is it safe to ignore this?


regards

Patrick
2   L A T E S T    R E P L I E S    (Newest First)
Patrick Quinn Posted - Aug 26 2011 : 09:08:30
quote:
Another fix is:

ImageEnView.IO.Params.RAW_ExtraParams := '-t 0';

It disables auto rotation in dcrawlib. Of course it needs EnableAdjustOrientation=true.


This fixes the problem. Thanks.

regards

Patrick
fab Posted - Aug 26 2011 : 01:51:58
Hi,
unfortunately dcrawlib automatically rotates the image when necessary, so you're right, it is done two times (by ImageEn also when EnableAdjustOrientation is true).
This will be fixed in next minor release of "dcrawlib".

Another fix is:

ImageEnView.IO.Params.RAW_ExtraParams := '-t 0';

It disables auto rotation in dcrawlib. Of course it needs EnableAdjustOrientation=true.