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
Amsn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amsn-devel

Reply via email to