27 #ifndef MLN_BORDER_RESIZE_HH
28 # define MLN_BORDER_RESIZE_HH
39 # include <mln/core/concept/image.hh>
40 # include <mln/core/routine/duplicate.hh>
41 # include <mln/core/routine/primary.hh>
42 # include <mln/border/get.hh>
43 # include <mln/data/fill.hh>
70 # ifndef MLN_INCLUDE_ONLY
82 mln_concrete(I) memo = mln::
duplicate(ima);
83 ima.resize_(thickness);
86 mln_postcondition(border::
get(ima) == thickness);
97 void resize_dispatch(trait::image::ext_domain::any,
98 const Image<I>& ima,
unsigned thickness)
105 template <
typename I>
107 void resize_dispatch(trait::image::ext_domain::extendable,
108 const Image<I>& ima,
unsigned thickness)
114 template <
typename I>
116 void resize_dispatch(
const Image<I>& ima,
unsigned thickness)
118 resize_dispatch(mln_trait_image_ext_domain(I)(),
127 template <
typename I>
129 void resize(
const Image<I>& ima,
unsigned thickness)
131 mln_trace(
"border::resize");
133 mln_precondition(
exact(ima).is_valid());
136 internal::resize_dispatch(
primary(ima), thickness);
140 # endif // ! MLN_INCLUDE_ONLY
147 #endif // ! MLN_BORDER_RESIZE_HH