Revision: 4910
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4910&view=rev
Author:   mdboom
Date:     2008-01-31 07:10:16 -0800 (Thu, 31 Jan 2008)

Log Message:
-----------
Fix image artifacts with various kinds of interpolation (Thanks Darren
Dale for finding the bug).

Modified Paths:
--------------
    trunk/matplotlib/src/_image.cpp

Modified: trunk/matplotlib/src/_image.cpp
===================================================================
--- trunk/matplotlib/src/_image.cpp     2008-01-31 14:21:49 UTC (rev 4909)
+++ trunk/matplotlib/src/_image.cpp     2008-01-31 15:10:16 UTC (rev 4910)
@@ -409,43 +409,17 @@
        agg::render_scanlines(ras, sl, ri);
       }
       break;
-        case BILINEAR:
-        case BICUBIC:
-        case SPLINE16:
-        case SPLINE36:
-        case HANNING:
-        case HAMMING:
-        case HERMITE:
-        case KAISER:
-        case QUADRIC:
-        case CATROM:
-        case GAUSSIAN:
-        case BESSEL:
-        case MITCHELL:
-        case SINC:
-        case LANCZOS:
-        case BLACKMAN:
-            {
-                agg::image_filter_lut filter;
-                switch(interpolation)
-                {
-                case BILINEAR:  filter.calculate(agg::image_filter_bilinear(), 
norm); break;
-                case BICUBIC:  filter.calculate(agg::image_filter_bicubic(), 
norm); break;
-                case SPLINE16:  filter.calculate(agg::image_filter_spline16(), 
norm); break;
-                case SPLINE36:  filter.calculate(agg::image_filter_spline36(), 
norm); break;
-                case HANNING:  filter.calculate(agg::image_filter_hanning(), 
norm); break;
-                case HAMMING:  filter.calculate(agg::image_filter_hamming(), 
norm); break;
-                case HERMITE:  filter.calculate(agg::image_filter_hermite(), 
norm); break;
-                case KAISER:  filter.calculate(agg::image_filter_kaiser(), 
norm); break;
-                case QUADRIC:  filter.calculate(agg::image_filter_quadric(), 
norm); break;
-                case CATROM: filter.calculate(agg::image_filter_catrom(), 
norm); break;
-                case GAUSSIAN: filter.calculate(agg::image_filter_gaussian(), 
norm); break;
-                case BESSEL: filter.calculate(agg::image_filter_bessel(), 
norm); break;
-                case MITCHELL: filter.calculate(agg::image_filter_mitchell(), 
norm); break;
-                case SINC: filter.calculate(agg::image_filter_sinc(radius), 
norm); break;
-                case LANCZOS: 
filter.calculate(agg::image_filter_lanczos(radius), norm); break;
-                case BLACKMAN: 
filter.calculate(agg::image_filter_blackman(radius), norm); break;
-                }
+
+    case HANNING:
+    case HAMMING:
+    case HERMITE:
+      {
+        agg::image_filter_lut filter;
+        switch (interpolation) {
+          case HANNING:  filter.calculate(agg::image_filter_hanning(), norm); 
break;
+          case HAMMING:  filter.calculate(agg::image_filter_hamming(), norm); 
break;
+          case HERMITE:  filter.calculate(agg::image_filter_hermite(), norm); 
break;
+        }
        typedef agg::span_image_filter_rgba_2x2<img_accessor_type, 
interpolator_type> span_gen_type;
        typedef agg::renderer_scanline_aa<renderer_base, span_alloc_type, 
span_gen_type> renderer_type;
        span_gen_type sg(ia, interpolator, filter);
@@ -453,6 +427,44 @@
        agg::render_scanlines(ras, sl, ri);
       }
       break;
+    case BILINEAR:
+    case BICUBIC:
+    case SPLINE16:
+    case SPLINE36:
+    case KAISER:
+    case QUADRIC:
+    case CATROM:
+    case GAUSSIAN:
+    case BESSEL:
+    case MITCHELL:
+    case SINC:
+    case LANCZOS:
+    case BLACKMAN:
+      {
+        agg::image_filter_lut filter;
+        switch(interpolation)
+          {
+          case BILINEAR:  filter.calculate(agg::image_filter_bilinear(), 
norm); break;
+          case BICUBIC:  filter.calculate(agg::image_filter_bicubic(), norm); 
break;
+          case SPLINE16:  filter.calculate(agg::image_filter_spline16(), 
norm); break;
+          case SPLINE36:  filter.calculate(agg::image_filter_spline36(), 
norm); break;
+          case KAISER:  filter.calculate(agg::image_filter_kaiser(), norm); 
break;
+          case QUADRIC:  filter.calculate(agg::image_filter_quadric(), norm); 
break;
+          case CATROM: filter.calculate(agg::image_filter_catrom(), norm); 
break;
+          case GAUSSIAN: filter.calculate(agg::image_filter_gaussian(), norm); 
break;
+          case BESSEL: filter.calculate(agg::image_filter_bessel(), norm); 
break;
+          case MITCHELL: filter.calculate(agg::image_filter_mitchell(), norm); 
break;
+          case SINC: filter.calculate(agg::image_filter_sinc(radius), norm); 
break;
+          case LANCZOS: filter.calculate(agg::image_filter_lanczos(radius), 
norm); break;
+          case BLACKMAN: filter.calculate(agg::image_filter_blackman(radius), 
norm); break;
+          }
+       typedef agg::span_image_filter_rgba<img_accessor_type, 
interpolator_type> span_gen_type;
+       typedef agg::renderer_scanline_aa<renderer_base, span_alloc_type, 
span_gen_type> renderer_type;
+       span_gen_type sg(ia, interpolator, filter);
+       renderer_type ri(rb, sa, sg);
+       agg::render_scanlines(ras, sl, ri);
+      }
+      break;
 
     }
 


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Matplotlib-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to