@@ -373,54 +373,52 @@ Image::resize(const Py::Tuple& args, const Py::Dict& kwargs) {
373373 switch (interpolation)
374374 {
375375
376- case 0 :
376+ case NEAREST :
377377 {
378- typedef agg::span_image_filter_rgb_nn<agg::rgba8,
379- agg::order_bgr,
380- interpolator_type> span_gen_type;
378+ typedef agg::span_image_filter_rgba_nn<agg::rgba8,agg::order_rgba, interpolator_type> span_gen_type;
381379 typedef agg::renderer_scanline_aa<renderer_base, span_gen_type> renderer_type;
382380
383- span_gen_type sg (sa, rbufPad , background, interpolator);
381+ span_gen_type sg (sa, *rbufIn , background, interpolator);
384382 renderer_type ri (rb, sg);
385383 agg::render_scanlines (ras, sl, ri);
386384 }
387385 break ;
388- case 1 :
389- case 2 :
390- case 3 :
391- case 4 :
392- case 5 :
393- case 6 :
394- case 7 :
395- case 8 :
396- case 9 :
397- case 10 :
398- case 11 :
399- case 12 :
400- case 13 :
401- case 14 :
402- case 15 :
403- case 16 :
386+ case BILINEAR :
387+ case BICUBIC :
388+ case SPLINE16 :
389+ case SPLINE36 :
390+ case HANNING :
391+ case HAMMING :
392+ case HERMITE :
393+ case KAISER :
394+ case QUADRIC :
395+ case CATROM :
396+ case GAUSSIAN :
397+ case BESSEL :
398+ case MITCHELL :
399+ case SINC :
400+ case LANCZOS :
401+ case BLACKMAN :
404402 {
405403 agg::image_filter_lut filter;
406404 switch (interpolation)
407405 {
408- case 1 : filter.calculate (agg::image_filter_bilinear (), norm); break ;
409- case 2 : filter.calculate (agg::image_filter_bicubic (), norm); break ;
410- case 3 : filter.calculate (agg::image_filter_spline16 (), norm); break ;
411- case 4 : filter.calculate (agg::image_filter_spline36 (), norm); break ;
412- case 5 : filter.calculate (agg::image_filter_hanning (), norm); break ;
413- case 6 : filter.calculate (agg::image_filter_hamming (), norm); break ;
414- case 7 : filter.calculate (agg::image_filter_hermite (), norm); break ;
415- case 8 : filter.calculate (agg::image_filter_kaiser (), norm); break ;
416- case 9 : filter.calculate (agg::image_filter_quadric (), norm); break ;
417- case 10 : filter.calculate (agg::image_filter_catrom (), norm); break ;
418- case 11 : filter.calculate (agg::image_filter_gaussian (), norm); break ;
419- case 12 : filter.calculate (agg::image_filter_bessel (), norm); break ;
420- case 13 : filter.calculate (agg::image_filter_mitchell (), norm); break ;
421- case 14 : filter.calculate (agg::image_filter_sinc (radius), norm); break ;
422- case 15 : filter.calculate (agg::image_filter_lanczos (radius), norm); break ;
423- case 16 : filter.calculate (agg::image_filter_blackman (radius), norm); break ;
406+ case BILINEAR : filter.calculate (agg::image_filter_bilinear (), norm); break ;
407+ case BICUBIC : filter.calculate (agg::image_filter_bicubic (), norm); break ;
408+ case SPLINE16 : filter.calculate (agg::image_filter_spline16 (), norm); break ;
409+ case SPLINE36 : filter.calculate (agg::image_filter_spline36 (), norm); break ;
410+ case HANNING : filter.calculate (agg::image_filter_hanning (), norm); break ;
411+ case HAMMING : filter.calculate (agg::image_filter_hamming (), norm); break ;
412+ case HERMITE : filter.calculate (agg::image_filter_hermite (), norm); break ;
413+ case KAISER : filter.calculate (agg::image_filter_kaiser (), norm); break ;
414+ case QUADRIC : filter.calculate (agg::image_filter_quadric (), norm); break ;
415+ case CATROM : filter.calculate (agg::image_filter_catrom (), norm); break ;
416+ case GAUSSIAN : filter.calculate (agg::image_filter_gaussian (), norm); break ;
417+ case BESSEL : filter.calculate (agg::image_filter_bessel (), norm); break ;
418+ case MITCHELL : filter.calculate (agg::image_filter_mitchell (), norm); break ;
419+ case SINC : filter.calculate (agg::image_filter_sinc (radius), norm); break ;
420+ case LANCZOS : filter.calculate (agg::image_filter_lanczos (radius), norm); break ;
421+ case BLACKMAN : filter.calculate (agg::image_filter_blackman (radius), norm); break ;
424422 }
425423
426424 typedef agg::span_image_filter_rgba<agg::rgba8, agg::order_rgba,
@@ -1080,7 +1078,7 @@ _image_module::frombuffer(const Py::Tuple& args) {
10801078 throw Py::ValueError (" Cannot get buffer from object." );
10811079
10821080 // Check buffer is required size.
1083- if (buflen != NUMBYTES)
1081+ if (( size_t ) buflen != NUMBYTES)
10841082 throw Py::ValueError (" Buffer length must be width * height * 4." );
10851083
10861084 // Copy from input buffer to new buffer for agg.
@@ -1137,17 +1135,24 @@ init_na_image(void) {
11371135
11381136 import_array ();
11391137 Py::Dict d = _image->moduleDictionary ();
1140- d[" BICUBIC" ] = Py::Int (Image::BICUBIC);
1141- d[" BILINEAR" ] = Py::Int (Image::BILINEAR);
1142- d[" BLACKMAN100" ] = Py::Int (Image::BLACKMAN100);
1143- d[" BLACKMAN256" ] = Py::Int (Image::BLACKMAN256);
1144- d[" BLACKMAN64" ] = Py::Int (Image::BLACKMAN64);
1138+
11451139 d[" NEAREST" ] = Py::Int (Image::NEAREST);
1146- d[" SINC144" ] = Py::Int (Image::SINC144);
1147- d[" SINC256" ] = Py::Int (Image::SINC256);
1148- d[" SINC64" ] = Py::Int (Image::SINC64);
1140+ d[" BILINEAR" ] = Py::Int (Image::BILINEAR);
1141+ d[" BICUBIC" ] = Py::Int (Image::BICUBIC);
11491142 d[" SPLINE16" ] = Py::Int (Image::SPLINE16);
11501143 d[" SPLINE36" ] = Py::Int (Image::SPLINE36);
1144+ d[" HANNING" ] = Py::Int (Image::HANNING);
1145+ d[" HAMMING" ] = Py::Int (Image::HAMMING);
1146+ d[" HERMITE" ] = Py::Int (Image::HERMITE);
1147+ d[" KAISER" ] = Py::Int (Image::KAISER);
1148+ d[" QUADRIC" ] = Py::Int (Image::QUADRIC);
1149+ d[" CATROM" ] = Py::Int (Image::CATROM);
1150+ d[" GAUSSIAN" ] = Py::Int (Image::GAUSSIAN);
1151+ d[" BESSEL" ] = Py::Int (Image::BESSEL);
1152+ d[" MITCHELL" ] = Py::Int (Image::MITCHELL);
1153+ d[" SINC" ] = Py::Int (Image::SINC);
1154+ d[" LANCZOS" ] = Py::Int (Image::LANCZOS);
1155+ d[" BLACKMAN" ] = Py::Int (Image::BLACKMAN);
11511156
11521157 d[" ASPECT_FREE" ] = Py::Int (Image::ASPECT_FREE);
11531158 d[" ASPECT_PRESERVE" ] = Py::Int (Image::ASPECT_PRESERVE);
0 commit comments