From: <md...@us...> - 2008-01-31 15:10:18
|
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. |
From: <md...@us...> - 2008-04-24 17:58:04
|
Revision: 5072 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5072&view=rev Author: mdboom Date: 2008-04-24 10:57:57 -0700 (Thu, 24 Apr 2008) Log Message: ----------- Trying to fix build for Eric (by including png.h first) Modified Paths: -------------- trunk/matplotlib/src/_image.cpp Modified: trunk/matplotlib/src/_image.cpp =================================================================== --- trunk/matplotlib/src/_image.cpp 2008-04-24 13:23:05 UTC (rev 5071) +++ trunk/matplotlib/src/_image.cpp 2008-04-24 17:57:57 UTC (rev 5072) @@ -1,3 +1,10 @@ +#include <png.h> + +// To remove a gcc warning +#ifdef _POSIX_C_SOURCE +#undef _POSIX_C_SOURCE +#endif + #include "Python.h" //after png.h due to setjmp bug #include <string> @@ -5,7 +12,6 @@ #include <fstream> #include <cmath> #include <cstdio> -#include <png.h> #define PY_ARRAY_TYPES_PREFIX NumPy #include "numpy/arrayobject.h" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |