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
 Loading Thumbnail (EXIF) with no black belt?
 New Topic  Reply to Topic
Author Previous Topic Topic Next Topic  

wesleybobato

Brazil
367 Posts

Posted - Jan 13 2014 :  13:59:03  Show Profile  Reply
Hello is that William will be able to load the sub-sampled (EXIF) Same Windows without a black belt? or decrease this black band?
Has some way to bypass this black band of thumbnail?



Below is an example
and some links to videos for better understanding

example
https://www.dropbox.com/s/tjuxba0br1t1j4q/EXIF.zip

videos.
https://www.dropbox.com/s/681pq427ya9nzrr/DSC_0245.MOV
https://www.dropbox.com/s/pgwvl5717szec6i/DSC_0246.MOV
https://www.dropbox.com/s/ygzh90c3vydwr52/DSC_0247.MOV

xequte

38611 Posts

Posted - Jan 13 2014 :  19:40:45  Show Profile  Reply
Hi Wesley

FWIW I am not a great fan of using the EXIF thumbnail. It may be slightly faster than loading a 1/8th size JPEG, but this is not readily noticeable on a well-spec'ed machine, and can be counteracted by use of caching.

Also, you cannot guarantee that an EXIF thumbnail has been updated correctly if the image was edited in another application. Plus, it is lower quality and may present issues such as this.

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

wesleybobato

Brazil
367 Posts

Posted - Jan 14 2014 :  05:44:56  Show Profile  Reply
Hello Nigel Fine Friend?

Thank you for your attention to my doubts.
I'll do some testing here at work to speed processing.

Nigel maximum scale for JPEG is
IO.Params.JPEG_Scale := ioJPEG_EIGHTH;

1/16th is possible? or the maximum for JPEG is 1/8th

Thank you good day and good job.
Go to Top of Page

wesleybobato

Brazil
367 Posts

Posted - Jan 14 2014 :  06:06:03  Show Profile  Reply
Hello Nigel I found a link that says this issue
Calls about 1/16th JPEG

http://newsgroup.xnview.com/viewtopic.php?f=4&t=1230

That's Possible?
Go to Top of Page

xequte

38611 Posts

Posted - Jan 16 2014 :  12:36:36  Show Profile  Reply
Hi

1/8 is the maximum amount in ImageEn.



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

w2m

USA
1990 Posts

Posted - Jan 16 2014 :  14:31:47  Show Profile  Reply
Wesley,

All you are doing according to your videos is to quickly display the images in a folder. You can totally eliminate the black border problems with EXIF thumbnails by not using EXIF thumbnails at all...

Rather... try using the methods in iexHelperFunctions to display the images in a folder as thumbnails by using iIEBitmap.IELoadAsThumbnail in a thread. The images will display just as fast and the thumbnails will be perfect.... no black borders.

William Miller
Adirondack Software & Graphics
Email: w2m@frontiernet.net
EBook: http://www.imageen.com/ebook/
Apprehend: http://www.frontiernet.net/~w2m/index.html
Go to Top of Page

wesleybobato

Brazil
367 Posts

Posted - Feb 01 2014 :  11:19:36  Show Profile  Reply
Hello William Excuse the delay in responding, this time of the year is very complicated here at the falls

I'll try your tip, then I'll post the results of performance


Thanks Friend
Go to Top of Page

Uwe

284 Posts

Posted - Mar 10 2014 :  14:53:21  Show Profile  Reply
Hi Bill

quote:
...display the images in a folder as thumbnails by using iIEBitmap.IELoadAsThumbnail in a thread. The images will display just as fast

Am I overlooking something? How can this be as fast as loading the EXIF thumbnails only? When using IELoadAsThumbnail, you still have to load the whole image before it is automatically resampled by the function. Now try this with a 30MB *.CR2 file, and you will see that it is dead slow (for obvious reasons).

Thanks
Uwe
Go to Top of Page

w2m

USA
1990 Posts

Posted - Mar 10 2014 :  15:27:42  Show Profile  Reply
Uwe...

Have you tried using iIEBitmap.IELoadAsThumbnail? Of course it is not as fast as the EXIF... but what happens when the EXIF does not load or there is no EXIF thumbnail or there is a problem with the EXIF like in Wesley's case?

It loads quick enough for me with 18 mega-pixel JPG files, so I would imagine that it would be fast enough for others as well. I do not have a camera that produces RAW and most cameras do not anyway, except for SLR's.

All I am saying is in cases where the EXIF is causing a problem, there are other alternatives that work quite well. Apparently Nigel believes similarly
quote:
FWIW I am not a great fan of using the EXIF thumbnail. It may be slightly faster than loading a 1/8th size JPEG, but this is not readily noticeable on a well-spec'ed machine, and can be counteracted by use of caching.

Also, you cannot guarantee that an EXIF thumbnail has been updated correctly if the image was edited in another application. Plus, it is lower quality and may present issues such as this.


William Miller
Adirondack Software & Graphics
Email: w2m@frontiernet.net
EBook: http://www.imageen.com/ebook/
Apprehend: http://www.frontiernet.net/~w2m/index.html
Custom ImageEn Development
Go to Top of Page

Uwe

284 Posts

Posted - Mar 10 2014 :  15:39:32  Show Profile  Reply
Bill

quote:
but what happens when the EXIF does not load or there is no EXIF thumbnail or there is a problem with the EXIF like in Wesley's case?

Using the -e option of dcraw is the best alternative by far. That's what I do at the moment, but for large camera RAW images it is still kind of slow.

quote:
...a camera that produces RAW and most cameras do not anyway, except for SLR's.

I'm working in a professional environment where shooting RAW is the norm, not the exception.

-Uwe

Go to Top of Page

w2m

USA
1990 Posts

Posted - Mar 10 2014 :  16:08:48  Show Profile  Reply
Uwe,

You forgot to answer my question:
quote:
Have you tried using iIEBitmap.IELoadAsThumbnail?


You can also put the thumbnail creation in a thread which in some cases is good for the GUI. In my "Android-Like" viewer 50, 18 mp. jpg's load in 3-4 seconds and the GUI is not locked, so its use is satisfactory even though quite large thumbnails are used. I have not tried RAW because I do not have access to raw images from my cameras.

In the end I guess you have to try to do what you can to maximize the effectiveness of your app for the intended audience. If IELoadAsThumbnail is not fast enough, then there is no alternative but to use EXIF.



William Miller
Go to Top of Page

Uwe

284 Posts

Posted - Mar 10 2014 :  16:32:18  Show Profile  Reply
Bill,

Yes I tried IELoadAsThumbnail, although it was a bit more complicated because my application uses IEBitmaps for thumbnail generation, and not regular TBitmaps. JPG's are not an issue in this context - they load really fast as you've correctly stated. The problem are large RAW files (some of them over 50MB in size) for which it can take ages to generate thumbnails. All relevant ImageEn demos use EXIF thumbs for this very reason, and the only acceptable way around this limitation I'm aware of at the moment is the -e option of DCRAW.

-Uwe
Go to Top of Page

w2m

USA
1990 Posts

Posted - Mar 10 2014 :  17:02:18  Show Profile  Reply
var
iIEBitmap: TIEBitmap;

iIEBitmap.IELoadAsThumbnail

TIEBitmaps can be used as well, but it does not improve the speed.

William Miller
Go to Top of Page

Uwe

284 Posts

Posted - Mar 10 2014 :  17:30:08  Show Profile  Reply
Bill, I'm still on ImageEn 4.3.0 .
{...}
var
  AttachedIEBitmap: TIEBitmap;
{...}
  try
    AttachedIEBitmap := TIEBitmap.Create;
    AttachedIEBitmap.IELoadAsThumbnail(...);

doesn't work as is.

-Uwe
Go to Top of Page

xequte

38611 Posts

Posted - Mar 12 2014 :  16:23:46  Show Profile  Reply
Hi

I'm afraid the TIEBitmap helper functions were not added till later. You can base your code on the TBitmap helpers if you don't wish to upgrade.



Nigel
Xequte Software
www.xequte.com
nigel@xequte.com
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
Jump To: