SourceForge logo
SourceForge logo
Menu

matplotlib-checkins

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 (2008年1月31日)
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 (2008年4月24日)
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.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /