I propose this diff to make resizing larger images faster, and making
resizing smaller images result in a better quality thumb. Please let
me know your thoughts, I will commit the patch (if there are no
comments, or suggestions) when I get libjpeg and libpng built as
universal binaries so they can be distributed with the aMSN bundle (on
OS X).
Index: utils/TkCximage/src/TkCximage.h
===================================================================
--- utils/TkCximage/src/TkCximage.h (revision 9115)
+++ utils/TkCximage/src/TkCximage.h (working copy)
@@ -55,6 +55,9 @@
#define ENABLE_LOGS 0
#define ANIMATE_GIFS 1
+#ifndef SMART_RESIZE
+ #define SMART_RESIZE 1
+#endif
Index: utils/TkCximage/src/procs.cpp
===================================================================
--- utils/TkCximage/src/procs.cpp (revision 9115)
+++ utils/TkCximage/src/procs.cpp (working copy)
@@ -219,7 +219,24 @@
if(alpha == 0 )
image.AlphaDelete();
- if(!image.Resample(width, height, 2)) {
+ /* Modes:
+ 0 - Bilinear (Slow[er])
+ 1 - Nearest Pixel (Fast[er])
+ 2 - Bicubic Spline (Accurate) */
+ int resampleMode = 2;
+ #if SMART_RESIZE == 1
+ if(width <= 800 && height <= 800) {
+ // Use a higher quality resample for small/medium images.
+ resampleMode = 0;
+ } else if(width >= 1024 && height >= 1024) {
+ // Fastest mode for "huge" images.
+ resampleMode = 1;
+ } else {
+ // Fast but accurate for large images.
+ resampleMode = 2;
+ }
+ #endif
+ if(!image.Resample(width, height, resampleMode)) {
Tcl_AppendResult(interp, image.GetLastError(), NULL);
return TCL_ERROR;
}
-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Amsn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/amsn-devel