 |
 |
|
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
^
|
|
|
 |
|
|
 |
|
|
Professional Thumbnailer Library
Professional Thumbnailer Library is a DLL for use in Win32 and Win64 software.
The library is based on a FIFO list and a thread pool. Just add a thumbnail request to the library and the threads extract and process the request one-by-one and return the thumbnail in a callback.
- High quality resize
- Multi-threaded so as fast as reasonably possible
- Accepts 4 inputs: file name, PIDL, HBitmap handle and in-memory "picture files" and "audio files"
- Options to add configurable shadow effect, and film frame effect for video thumbnails (both at the same time if needed)
- Each thumbnail request has its own parameters
- Supports all picture files Free Image Library supports
- Supports all RAW camera picture file formats libraw supports
- Supports all cover arts Tags Library supports
- Option of creating audio sample thumbnails from all audio file formats BASS supports
The component can be evaluated freely. If you like it and decide to use it in a freeware, shareware or commercial (or any other money making - advertising, in app. selling, etc.) product one of the licenses is needed.
Supported file formats
Pictures:
- JPG images (*.jpg, *.jpeg)
- JPEG2000 images (*.jp2, *.j2k, *.jpc)
- TIFF images (*.tif, *.tiff) (You need a license to use the LZW compressed format)
- GFI fax images (*.fax)
- SGI images (*.bw, *.rgb, *.rgba, *.sgi)
- Autodesk images files (*.cel, *.pic) old style only
- Truevision images (*.tga, *.vst, *.icb, *.vda, *.win)
- ZSoft Paintbrush images (*.pcx, *.pcc)
- Word 5.x screen capture files (*.scr)
- Kodak Photo-CD images (*.pcd)
- Portable pixel/gray map images (*.ppm, *.pgm, *.pbm)
- Dr. Halo images (*.cut, *.pal)
- CompuServe images (*.gif)
- SGI Wavefront images (*.rla, *.rpf)
- Standard Windows bitmap images (*.bmp, *.rle, *.dib),
- Photoshop images (*.psd, *.pdd)
- Paintshop Pro images (*.psp)
- Portable network graphic images (*.png)
- Amiga (*.iff, *.lbm)
- DirectDraw Surface (*.dds)
- Raw Fax format CCITT G3 (*.g3)
- High Dynamic Range (*.hdr)
- JPEG Network Graphics (*.jng)
- Commodore 64 Koala format (*.koa)
- Multiple Network Graphics (*.mng)
- Sun Rasterfile (*.ras)
- Truevision Targa files (*.tga, *.targa)
- Wireless Bitmap (*.wbmp)
- X11 Bitmap Format (*.xbm)
- X11 Pixmap Format (*.xpm)
RAW camera photo files:
- Hasselblad Raw (*.3fr)
- Sony Raw (*.arw, *.srf, *.sr2)
- Casio Raw (*.bay)
- Capture One Raw (*.cap, *.cs1)
- Canon Raw (*.crw, *.cr2, *.cr3)
- Kodak Raw (*.dcr, *.dcs, *.drf, *.k25, *.kdc)
- Camera Raw (*.dng)
- Epson Raw (*.erf)
- Phase One Raw (*.iiq)
- Mamiya Raw (*.mef)
- Leaf Raw (*.mos)
- Minolta Raw (*.mrw)
- Nikon Raw (*.nef, *.nrw)
- Olympus Raw (*.orf)
- Pentax Raw (*.pef, *.ptx)
- Fujifilm Raw (*.raf)
- Panasonic Raw (*.raw, *.rwl, *.rw2)
- Samsung Raw (*.srw)
- Sigma Raw (*.x3f)
Audios:
- Audio file tags are read (tags/cover art): ID3v1, ID3v2, Lyrics3, APEv1, APEv2, Flac (including Ogg Flac), Ogg Vorbis, Opus, MP4 (including video files and 64bit atom size files), WAV LIST INFO, BEXT and CART (including RF64 WAV files) and WMA
- Furthermore if bass.dll is found in the process space or in the file system path, audio sample thumbnails are generated for all audio files that BASS can open (all the file formats that BASS supports or there is a BASS plugin loaded for the particular format).
Text:
- Text files (*.txt, *.text, *.log, *.ini, *.cfg, *.pas, *.cpp, *.h, *.bas) - configurable in settings
Basic usage
1. Create an instance with:
- ProfessionalThumbnailer_Create()
2. Add thumbnail request(s) with:
- ProfessionalThumbnailer_AddFileName()
- ProfessionalThumbnailer_AddPIDL()
- ProfessionalThumbnailer_AddHandle()
- ProfessionalThumbnailer_AddMemory()
The 'TPTAddParameters.Callback' must be specified else the add functions will fail.
If the functions return 'False' do not forget to free any 'User' etc. objects - normally free them eg. in the callback.
These are non-blocking calls, once a thumbnail request has been added to the queue these functions return and the threads will process the requests and return the thumbnails handle in the callback as fast as possible.
The callback is called from the worker threads so be aware that the callback code is running in a separate thread and also the specific worker thread is paused until the callback returns.
3. Free the instance if finished with:
- ProfessionalThumbnailer_Free()
To cancel all the added requests call:
- ProfessionalThumbnailer_Clear()
Note that this will not cancel the jobs currently processing just clears the job list.
The callback may (and surely will) still return previously requested thumbnails, use the 'TPTThumbnailParameters.ListingID' to check if the thumbnail is from a previous or current listing.
There are 4 blocking functions to request a thumbnail without threading:
- ProfessionalThumbnailer_GetFileNameThumbnail()
- ProfessionalThumbnailer_GetPIDLThumbnail()
- ProfessionalThumbnailer_GetHandleThumbnail()
- ProfessionalThumbnailer_GetMemoryThumbnail()
The thumbnail handle is returned in the 'BitmapHandle' variable.
It's safe to call these functions in threads too though.
RAW camera photo file support
RAW camera photo file support requires the included 'libraw.dll'. If you don't need RAW file support don't include this DLL.
Note that when loading files from memory pointer/size if the DLL is loaded then first RAW format is tried first. This requires some processing thus slowing down the loading process. If this is not needed just don't provide 'libraw.dll'.
|
|
|
|
|
|