@@ -409,50 +409,62 @@ Image::resize(const Py::Tuple& args, const Py::Dict& kwargs) {
409409 agg::render_scanlines (ras, sl, ri);
410410 }
411411 break ;
412- case BILINEAR:
413- case BICUBIC:
414- case SPLINE16:
415- case SPLINE36:
416- case HANNING:
417- case HAMMING:
418- case HERMITE:
419- case KAISER:
420- case QUADRIC:
421- case CATROM:
422- case GAUSSIAN:
423- case BESSEL:
424- case MITCHELL:
425- case SINC:
426- case LANCZOS:
427- case BLACKMAN:
428- {
429- agg::image_filter_lut filter;
430- switch (interpolation)
431- {
432- case BILINEAR: filter.calculate (agg::image_filter_bilinear (), norm); break ;
433- case BICUBIC: filter.calculate (agg::image_filter_bicubic (), norm); break ;
434- case SPLINE16: filter.calculate (agg::image_filter_spline16 (), norm); break ;
435- case SPLINE36: filter.calculate (agg::image_filter_spline36 (), norm); break ;
436- case HANNING: filter.calculate (agg::image_filter_hanning (), norm); break ;
437- case HAMMING: filter.calculate (agg::image_filter_hamming (), norm); break ;
438- case HERMITE: filter.calculate (agg::image_filter_hermite (), norm); break ;
439- case KAISER: filter.calculate (agg::image_filter_kaiser (), norm); break ;
440- case QUADRIC: filter.calculate (agg::image_filter_quadric (), norm); break ;
441- case CATROM: filter.calculate (agg::image_filter_catrom (), norm); break ;
442- case GAUSSIAN: filter.calculate (agg::image_filter_gaussian (), norm); break ;
443- case BESSEL: filter.calculate (agg::image_filter_bessel (), norm); break ;
444- case MITCHELL: filter.calculate (agg::image_filter_mitchell (), norm); break ;
445- case SINC: filter.calculate (agg::image_filter_sinc (radius), norm); break ;
446- case LANCZOS: filter.calculate (agg::image_filter_lanczos (radius), norm); break ;
447- case BLACKMAN: filter.calculate (agg::image_filter_blackman (radius), norm); break ;
448- }
412+
413+ case HANNING:
414+ case HAMMING:
415+ case HERMITE:
416+ {
417+ agg::image_filter_lut filter;
418+ switch (interpolation) {
419+ case HANNING: filter.calculate (agg::image_filter_hanning (), norm); break ;
420+ case HAMMING: filter.calculate (agg::image_filter_hamming (), norm); break ;
421+ case HERMITE: filter.calculate (agg::image_filter_hermite (), norm); break ;
422+ }
449423 typedef agg::span_image_filter_rgba_2x2<img_accessor_type, interpolator_type> span_gen_type;
450424 typedef agg::renderer_scanline_aa<renderer_base, span_alloc_type, span_gen_type> renderer_type;
451425 span_gen_type sg (ia, interpolator, filter);
452426 renderer_type ri (rb, sa, sg);
453427 agg::render_scanlines (ras, sl, ri);
454428 }
455429 break ;
430+ case BILINEAR:
431+ case BICUBIC:
432+ case SPLINE16:
433+ case SPLINE36:
434+ case KAISER:
435+ case QUADRIC:
436+ case CATROM:
437+ case GAUSSIAN:
438+ case BESSEL:
439+ case MITCHELL:
440+ case SINC:
441+ case LANCZOS:
442+ case BLACKMAN:
443+ {
444+ agg::image_filter_lut filter;
445+ switch (interpolation)
446+ {
447+ case BILINEAR: filter.calculate (agg::image_filter_bilinear (), norm); break ;
448+ case BICUBIC: filter.calculate (agg::image_filter_bicubic (), norm); break ;
449+ case SPLINE16: filter.calculate (agg::image_filter_spline16 (), norm); break ;
450+ case SPLINE36: filter.calculate (agg::image_filter_spline36 (), norm); break ;
451+ case KAISER: filter.calculate (agg::image_filter_kaiser (), norm); break ;
452+ case QUADRIC: filter.calculate (agg::image_filter_quadric (), norm); break ;
453+ case CATROM: filter.calculate (agg::image_filter_catrom (), norm); break ;
454+ case GAUSSIAN: filter.calculate (agg::image_filter_gaussian (), norm); break ;
455+ case BESSEL: filter.calculate (agg::image_filter_bessel (), norm); break ;
456+ case MITCHELL: filter.calculate (agg::image_filter_mitchell (), norm); break ;
457+ case SINC: filter.calculate (agg::image_filter_sinc (radius), norm); break ;
458+ case LANCZOS: filter.calculate (agg::image_filter_lanczos (radius), norm); break ;
459+ case BLACKMAN: filter.calculate (agg::image_filter_blackman (radius), norm); break ;
460+ }
461+ typedef agg::span_image_filter_rgba<img_accessor_type, interpolator_type> span_gen_type;
462+ typedef agg::renderer_scanline_aa<renderer_base, span_alloc_type, span_gen_type> renderer_type;
463+ span_gen_type sg (ia, interpolator, filter);
464+ renderer_type ri (rb, sa, sg);
465+ agg::render_scanlines (ras, sl, ri);
466+ }
467+ break ;
456468
457469 }
458470
0 commit comments