| 1 | *** ../../boost-trunk/boost/gil/extension/dynamic_image/image_view_factory.hpp  2009-03-04 21:44:31.000000000 +0100 | 
|---|
| 2 | --- image_view_factory.hpp      2009-03-04 21:50:15.000000000 +0100 | 
|---|
| 3 | *************** | 
|---|
| 4 | *** 1,6 **** | 
|---|
| 5 | /* | 
|---|
| 6 | Copyright 2005-2007 Adobe Systems Incorporated | 
|---|
| 7 | ! | 
|---|
| 8 | Use, modification and distribution are subject to the Boost Software License, | 
|---|
| 9 | Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at | 
|---|
| 10 | http://www.boost.org/LICENSE_1_0.txt). | 
|---|
| 11 | --- 1,6 ---- | 
|---|
| 12 | /* | 
|---|
| 13 | Copyright 2005-2007 Adobe Systems Incorporated | 
|---|
| 14 | ! | 
|---|
| 15 | Use, modification and distribution are subject to the Boost Software License, | 
|---|
| 16 | Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at | 
|---|
| 17 | http://www.boost.org/LICENSE_1_0.txt). | 
|---|
| 18 | *************** | 
|---|
| 19 | *** 14,20 **** | 
|---|
| 20 | #define GIL_DYNAMICIMAGE_IMAGE_VIEWS_HPP | 
|---|
| 21 |  | 
|---|
| 22 | /*! | 
|---|
| 23 | ! /// \file | 
|---|
| 24 | /// \brief Methods for constructing any image views from other any image views | 
|---|
| 25 | /// \author Lubomir Bourdev and Hailin Jin \n | 
|---|
| 26 | ///         Adobe Systems Incorporated | 
|---|
| 27 | --- 14,20 ---- | 
|---|
| 28 | #define GIL_DYNAMICIMAGE_IMAGE_VIEWS_HPP | 
|---|
| 29 |  | 
|---|
| 30 | /*! | 
|---|
| 31 | ! /// \file | 
|---|
| 32 | /// \brief Methods for constructing any image views from other any image views | 
|---|
| 33 | /// \author Lubomir Bourdev and Hailin Jin \n | 
|---|
| 34 | ///         Adobe Systems Incorporated | 
|---|
| 35 | *************** | 
|---|
| 36 | *** 70,79 **** | 
|---|
| 37 | int _n; | 
|---|
| 38 | template <typename View> result_type operator()(const View& src) const { return result_type(nth_channel_view(src,_n)); } | 
|---|
| 39 | }; | 
|---|
| 40 | ! template <typename DstP, typename Result> struct color_converted_view_fn { | 
|---|
| 41 | typedef Result result_type; | 
|---|
| 42 | !     template <typename View> result_type operator()(const View& src) const { return result_type(color_converted_view<DstP>(src)); } | 
|---|
| 43 | }; | 
|---|
| 44 | } // namespace detail | 
|---|
| 45 |  | 
|---|
| 46 |  | 
|---|
| 47 | --- 70,87 ---- | 
|---|
| 48 | int _n; | 
|---|
| 49 | template <typename View> result_type operator()(const View& src) const { return result_type(nth_channel_view(src,_n)); } | 
|---|
| 50 | }; | 
|---|
| 51 | ! | 
|---|
| 52 | ! template <typename DstP, typename Result, typename CC = default_color_converter> struct color_converted_view_fn { | 
|---|
| 53 | typedef Result result_type; | 
|---|
| 54 | !     color_converted_view_fn(CC cc = CC()): | 
|---|
| 55 | !       _cc(cc) {} | 
|---|
| 56 | ! | 
|---|
| 57 | !     template <typename View> result_type operator()(const View& src) const { return result_type(color_converted_view<DstP>(src, _cc)); } | 
|---|
| 58 | ! | 
|---|
| 59 | !       private: | 
|---|
| 60 | !               CC _cc; | 
|---|
| 61 | }; | 
|---|
| 62 | + | 
|---|
| 63 | } // namespace detail | 
|---|
| 64 |  | 
|---|
| 65 |  | 
|---|
| 66 | *************** | 
|---|
| 67 | *** 79,140 **** | 
|---|
| 68 |  | 
|---|
| 69 | /// \ingroup ImageViewTransformationsFlipUD | 
|---|
| 70 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 71 | ! typename dynamic_y_step_type<any_image_view<ViewTypes> >::type flipped_up_down_view(const any_image_view<ViewTypes>& src) { | 
|---|
| 72 | !     return apply_operation(src,detail::flipped_up_down_view_fn<typename dynamic_y_step_type<any_image_view<ViewTypes> >::type>()); | 
|---|
| 73 | } | 
|---|
| 74 |  | 
|---|
| 75 | /// \ingroup ImageViewTransformationsFlipLR | 
|---|
| 76 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 77 | ! typename dynamic_x_step_type<any_image_view<ViewTypes> >::type flipped_left_right_view(const any_image_view<ViewTypes>& src) { | 
|---|
| 78 | !     return apply_operation(src,detail::flipped_left_right_view_fn<typename dynamic_x_step_type<any_image_view<ViewTypes> >::type>()); | 
|---|
| 79 | } | 
|---|
| 80 |  | 
|---|
| 81 | /// \ingroup ImageViewTransformationsTransposed | 
|---|
| 82 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 83 | ! typename dynamic_xy_step_transposed_type<any_image_view<ViewTypes> >::type transposed_view(const any_image_view<ViewTypes>& src) { | 
|---|
| 84 | !     return apply_operation(src,detail::tranposed_view_fn<typename dynamic_xy_step_transposed_type<any_image_view<ViewTypes> >::type>()); | 
|---|
| 85 | } | 
|---|
| 86 |  | 
|---|
| 87 | /// \ingroup ImageViewTransformations90CW | 
|---|
| 88 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 89 | ! typename dynamic_xy_step_transposed_type<any_image_view<ViewTypes> >::type rotated90cw_view(const any_image_view<ViewTypes>& src) { | 
|---|
| 90 | !     return apply_operation(src,detail::rotated90cw_view_fn<typename dynamic_xy_step_transposed_type<any_image_view<ViewTypes> >::type>()); | 
|---|
| 91 | } | 
|---|
| 92 |  | 
|---|
| 93 | /// \ingroup ImageViewTransformations90CCW | 
|---|
| 94 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 95 | ! typename dynamic_xy_step_transposed_type<any_image_view<ViewTypes> >::type rotated90ccw_view(const any_image_view<ViewTypes>& src) { | 
|---|
| 96 | !     return apply_operation(src,detail::rotated90ccw_view_fn<typename dynamic_xy_step_transposed_type<any_image_view<ViewTypes> >::type>()); | 
|---|
| 97 | } | 
|---|
| 98 |  | 
|---|
| 99 | /// \ingroup ImageViewTransformations180 | 
|---|
| 100 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 101 | ! typename dynamic_xy_step_type<any_image_view<ViewTypes> >::type rotated180_view(const any_image_view<ViewTypes>& src) { | 
|---|
| 102 | !     return apply_operation(src,detail::rotated180_view_fn<typename dynamic_xy_step_type<any_image_view<ViewTypes> >::type>()); | 
|---|
| 103 | } | 
|---|
| 104 |  | 
|---|
| 105 | /// \ingroup ImageViewTransformationsSubimage | 
|---|
| 106 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 107 | ! any_image_view<ViewTypes> subimage_view(const any_image_view<ViewTypes>& src, const point2<std::ptrdiff_t>& topleft, const point2<std::ptrdiff_t>& dimensions) { | 
|---|
| 108 | !     return apply_operation(src,detail::subimage_view_fn<any_image_view<ViewTypes> >(topleft,dimensions)); | 
|---|
| 109 | } | 
|---|
| 110 |  | 
|---|
| 111 | /// \ingroup ImageViewTransformationsSubimage | 
|---|
| 112 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 113 | ! any_image_view<ViewTypes> subimage_view(const any_image_view<ViewTypes>& src, int xMin, int yMin, int width, int height) { | 
|---|
| 114 | !     return apply_operation(src,detail::subimage_view_fn<any_image_view<ViewTypes> >(point2<std::ptrdiff_t>(xMin,yMin),point2<std::ptrdiff_t>(width,height))); | 
|---|
| 115 | } | 
|---|
| 116 |  | 
|---|
| 117 | /// \ingroup ImageViewTransformationsSubsampled | 
|---|
| 118 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 119 | ! typename dynamic_xy_step_type<any_image_view<ViewTypes> >::type subsampled_view(const any_image_view<ViewTypes>& src, const point2<std::ptrdiff_t>& step) { | 
|---|
| 120 | !     return apply_operation(src,detail::subsampled_view_fn<typename dynamic_xy_step_type<any_image_view<ViewTypes> >::type>(step)); | 
|---|
| 121 | } | 
|---|
| 122 |  | 
|---|
| 123 | /// \ingroup ImageViewTransformationsSubsampled | 
|---|
| 124 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 125 | ! typename dynamic_xy_step_type<any_image_view<ViewTypes> >::type subsampled_view(const any_image_view<ViewTypes>& src, int xStep, int yStep) { | 
|---|
| 126 | !     return apply_operation(src,detail::subsampled_view_fn<typename dynamic_xy_step_type<any_image_view<ViewTypes> >::type>(point2<std::ptrdiff_t>(xStep,yStep))); | 
|---|
| 127 | } | 
|---|
| 128 |  | 
|---|
| 129 | namespace detail { | 
|---|
| 130 | --- 87,148 ---- | 
|---|
| 131 |  | 
|---|
| 132 | /// \ingroup ImageViewTransformationsFlipUD | 
|---|
| 133 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 134 | ! typename dynamic_y_step_type<any_image_view<ViewTypes> >::type flipped_up_down_view(const any_image_view<ViewTypes>& src) { | 
|---|
| 135 | !     return apply_operation(src,detail::flipped_up_down_view_fn<typename dynamic_y_step_type<any_image_view<ViewTypes> >::type>()); | 
|---|
| 136 | } | 
|---|
| 137 |  | 
|---|
| 138 | /// \ingroup ImageViewTransformationsFlipLR | 
|---|
| 139 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 140 | ! typename dynamic_x_step_type<any_image_view<ViewTypes> >::type flipped_left_right_view(const any_image_view<ViewTypes>& src) { | 
|---|
| 141 | !     return apply_operation(src,detail::flipped_left_right_view_fn<typename dynamic_x_step_type<any_image_view<ViewTypes> >::type>()); | 
|---|
| 142 | } | 
|---|
| 143 |  | 
|---|
| 144 | /// \ingroup ImageViewTransformationsTransposed | 
|---|
| 145 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 146 | ! typename dynamic_xy_step_transposed_type<any_image_view<ViewTypes> >::type transposed_view(const any_image_view<ViewTypes>& src) { | 
|---|
| 147 | !     return apply_operation(src,detail::tranposed_view_fn<typename dynamic_xy_step_transposed_type<any_image_view<ViewTypes> >::type>()); | 
|---|
| 148 | } | 
|---|
| 149 |  | 
|---|
| 150 | /// \ingroup ImageViewTransformations90CW | 
|---|
| 151 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 152 | ! typename dynamic_xy_step_transposed_type<any_image_view<ViewTypes> >::type rotated90cw_view(const any_image_view<ViewTypes>& src) { | 
|---|
| 153 | !     return apply_operation(src,detail::rotated90cw_view_fn<typename dynamic_xy_step_transposed_type<any_image_view<ViewTypes> >::type>()); | 
|---|
| 154 | } | 
|---|
| 155 |  | 
|---|
| 156 | /// \ingroup ImageViewTransformations90CCW | 
|---|
| 157 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 158 | ! typename dynamic_xy_step_transposed_type<any_image_view<ViewTypes> >::type rotated90ccw_view(const any_image_view<ViewTypes>& src) { | 
|---|
| 159 | !     return apply_operation(src,detail::rotated90ccw_view_fn<typename dynamic_xy_step_transposed_type<any_image_view<ViewTypes> >::type>()); | 
|---|
| 160 | } | 
|---|
| 161 |  | 
|---|
| 162 | /// \ingroup ImageViewTransformations180 | 
|---|
| 163 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 164 | ! typename dynamic_xy_step_type<any_image_view<ViewTypes> >::type rotated180_view(const any_image_view<ViewTypes>& src) { | 
|---|
| 165 | !     return apply_operation(src,detail::rotated180_view_fn<typename dynamic_xy_step_type<any_image_view<ViewTypes> >::type>()); | 
|---|
| 166 | } | 
|---|
| 167 |  | 
|---|
| 168 | /// \ingroup ImageViewTransformationsSubimage | 
|---|
| 169 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 170 | ! any_image_view<ViewTypes> subimage_view(const any_image_view<ViewTypes>& src, const point2<std::ptrdiff_t>& topleft, const point2<std::ptrdiff_t>& dimensions) { | 
|---|
| 171 | !     return apply_operation(src,detail::subimage_view_fn<any_image_view<ViewTypes> >(topleft,dimensions)); | 
|---|
| 172 | } | 
|---|
| 173 |  | 
|---|
| 174 | /// \ingroup ImageViewTransformationsSubimage | 
|---|
| 175 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 176 | ! any_image_view<ViewTypes> subimage_view(const any_image_view<ViewTypes>& src, int xMin, int yMin, int width, int height) { | 
|---|
| 177 | !     return apply_operation(src,detail::subimage_view_fn<any_image_view<ViewTypes> >(point2<std::ptrdiff_t>(xMin,yMin),point2<std::ptrdiff_t>(width,height))); | 
|---|
| 178 | } | 
|---|
| 179 |  | 
|---|
| 180 | /// \ingroup ImageViewTransformationsSubsampled | 
|---|
| 181 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 182 | ! typename dynamic_xy_step_type<any_image_view<ViewTypes> >::type subsampled_view(const any_image_view<ViewTypes>& src, const point2<std::ptrdiff_t>& step) { | 
|---|
| 183 | !     return apply_operation(src,detail::subsampled_view_fn<typename dynamic_xy_step_type<any_image_view<ViewTypes> >::type>(step)); | 
|---|
| 184 | } | 
|---|
| 185 |  | 
|---|
| 186 | /// \ingroup ImageViewTransformationsSubsampled | 
|---|
| 187 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 188 | ! typename dynamic_xy_step_type<any_image_view<ViewTypes> >::type subsampled_view(const any_image_view<ViewTypes>& src, int xStep, int yStep) { | 
|---|
| 189 | !     return apply_operation(src,detail::subsampled_view_fn<typename dynamic_xy_step_type<any_image_view<ViewTypes> >::type>(point2<std::ptrdiff_t>(xStep,yStep))); | 
|---|
| 190 | } | 
|---|
| 191 |  | 
|---|
| 192 | namespace detail { | 
|---|
| 193 | *************** | 
|---|
| 194 | *** 151,158 **** | 
|---|
| 195 |  | 
|---|
| 196 | /// \ingroup ImageViewTransformationsNthChannel | 
|---|
| 197 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 198 | ! typename nth_channel_view_type<any_image_view<ViewTypes> >::type nth_channel_view(const any_image_view<ViewTypes>& src, int n) { | 
|---|
| 199 | !     return apply_operation(src,detail::nth_channel_view_fn<typename nth_channel_view_type<any_image_view<ViewTypes> >::type>(n)); | 
|---|
| 200 | } | 
|---|
| 201 |  | 
|---|
| 202 | namespace detail { | 
|---|
| 203 | --- 159,166 ---- | 
|---|
| 204 |  | 
|---|
| 205 | /// \ingroup ImageViewTransformationsNthChannel | 
|---|
| 206 | template <typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 207 | ! typename nth_channel_view_type<any_image_view<ViewTypes> >::type nth_channel_view(const any_image_view<ViewTypes>& src, int n) { | 
|---|
| 208 | !     return apply_operation(src,detail::nth_channel_view_fn<typename nth_channel_view_type<any_image_view<ViewTypes> >::type>(n)); | 
|---|
| 209 | } | 
|---|
| 210 |  | 
|---|
| 211 | namespace detail { | 
|---|
| 212 | *************** | 
|---|
| 213 | *** 170,177 **** | 
|---|
| 214 | /// \ingroup ImageViewTransformationsColorConvert | 
|---|
| 215 | /// \brief overload of generic color_converted_view with user defined color-converter | 
|---|
| 216 | template <typename DstP, typename ViewTypes, typename CC> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 217 | ! typename color_converted_view_type<any_image_view<ViewTypes>, DstP, CC>::type color_converted_view(const any_image_view<ViewTypes>& src,CC cc) { | 
|---|
| 218 | !     return apply_operation(src,detail::color_converted_view_fn<DstP,typename color_converted_view_type<any_image_view<ViewTypes>, DstP, CC>::type >()); | 
|---|
| 219 | } | 
|---|
| 220 |  | 
|---|
| 221 | /// \ingroup ImageViewTransformationsColorConvert | 
|---|
| 222 | --- 178,185 ---- | 
|---|
| 223 | /// \ingroup ImageViewTransformationsColorConvert | 
|---|
| 224 | /// \brief overload of generic color_converted_view with user defined color-converter | 
|---|
| 225 | template <typename DstP, typename ViewTypes, typename CC> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 226 | ! typename color_converted_view_type<any_image_view<ViewTypes>, DstP, CC>::type color_converted_view(const any_image_view<ViewTypes>& src,CC cc) { | 
|---|
| 227 | !     return apply_operation(src,detail::color_converted_view_fn<DstP,typename color_converted_view_type<any_image_view<ViewTypes>, DstP, CC>::type >()); | 
|---|
| 228 | } | 
|---|
| 229 |  | 
|---|
| 230 | /// \ingroup ImageViewTransformationsColorConvert | 
|---|
| 231 | *************** | 
|---|
| 232 | *** 184,191 **** | 
|---|
| 233 | /// \ingroup ImageViewTransformationsColorConvert | 
|---|
| 234 | /// \brief overload of generic color_converted_view with the default color-converter | 
|---|
| 235 | template <typename DstP, typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 236 | ! typename color_converted_view_type<any_image_view<ViewTypes>, DstP>::type color_converted_view(const any_image_view<ViewTypes>& src) { | 
|---|
| 237 | !     return apply_operation(src,detail::color_converted_view_fn<DstP,typename color_converted_view_type<any_image_view<ViewTypes>, DstP>::type >()); | 
|---|
| 238 | } | 
|---|
| 239 |  | 
|---|
| 240 |  | 
|---|
| 241 | --- 192,199 ---- | 
|---|
| 242 | /// \ingroup ImageViewTransformationsColorConvert | 
|---|
| 243 | /// \brief overload of generic color_converted_view with the default color-converter | 
|---|
| 244 | template <typename DstP, typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 245 | ! typename color_converted_view_type<any_image_view<ViewTypes>, DstP>::type color_converted_view(const any_image_view<ViewTypes>& src) { | 
|---|
| 246 | !     return apply_operation(src,detail::color_converted_view_fn<DstP,typename color_converted_view_type<any_image_view<ViewTypes>, DstP>::type >()); | 
|---|
| 247 | } | 
|---|
| 248 |  | 
|---|
| 249 |  | 
|---|
| 250 | *************** | 
|---|
| 251 | *** 193,208 **** | 
|---|
| 252 | /// \brief overload of generic color_converted_view with user defined color-converter | 
|---|
| 253 | ///        These are workarounds for GCC 3.4, which thinks color_converted_view is ambiguous with the same method for templated views (in gil/image_view_factory.hpp) | 
|---|
| 254 | template <typename DstP, typename ViewTypes, typename CC> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 255 | ! typename color_converted_view_type<any_image_view<ViewTypes>, DstP, CC>::type any_color_converted_view(const any_image_view<ViewTypes>& src,CC cc) { | 
|---|
| 256 | !     return apply_operation(src,detail::color_converted_view_fn<DstP,typename color_converted_view_type<any_image_view<ViewTypes>, DstP, CC>::type >()); | 
|---|
| 257 | } | 
|---|
| 258 |  | 
|---|
| 259 | /// \ingroup ImageViewTransformationsColorConvert | 
|---|
| 260 | /// \brief overload of generic color_converted_view with the default color-converter | 
|---|
| 261 | ///        These are workarounds for GCC 3.4, which thinks color_converted_view is ambiguous with the same method for templated views (in gil/image_view_factory.hpp) | 
|---|
| 262 | template <typename DstP, typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 263 | ! typename color_converted_view_type<any_image_view<ViewTypes>, DstP>::type any_color_converted_view(const any_image_view<ViewTypes>& src) { | 
|---|
| 264 | !     return apply_operation(src,detail::color_converted_view_fn<DstP,typename color_converted_view_type<any_image_view<ViewTypes>, DstP>::type >()); | 
|---|
| 265 | } | 
|---|
| 266 |  | 
|---|
| 267 | /// \} | 
|---|
| 268 | --- 201,216 ---- | 
|---|
| 269 | /// \brief overload of generic color_converted_view with user defined color-converter | 
|---|
| 270 | ///        These are workarounds for GCC 3.4, which thinks color_converted_view is ambiguous with the same method for templated views (in gil/image_view_factory.hpp) | 
|---|
| 271 | template <typename DstP, typename ViewTypes, typename CC> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 272 | ! typename color_converted_view_type<any_image_view<ViewTypes>, DstP, CC>::type any_color_converted_view(const any_image_view<ViewTypes>& src,CC cc) { | 
|---|
| 273 | !     return apply_operation(src,detail::color_converted_view_fn<DstP,typename color_converted_view_type<any_image_view<ViewTypes>, DstP, CC>::type, CC>(cc)); | 
|---|
| 274 | } | 
|---|
| 275 |  | 
|---|
| 276 | /// \ingroup ImageViewTransformationsColorConvert | 
|---|
| 277 | /// \brief overload of generic color_converted_view with the default color-converter | 
|---|
| 278 | ///        These are workarounds for GCC 3.4, which thinks color_converted_view is ambiguous with the same method for templated views (in gil/image_view_factory.hpp) | 
|---|
| 279 | template <typename DstP, typename ViewTypes> inline // Models MPL Random Access Container of models of ImageViewConcept | 
|---|
| 280 | ! typename color_converted_view_type<any_image_view<ViewTypes>, DstP>::type any_color_converted_view(const any_image_view<ViewTypes>& src) { | 
|---|
| 281 | !     return apply_operation(src,detail::color_converted_view_fn<DstP,typename color_converted_view_type<any_image_view<ViewTypes>, DstP>::type >()); | 
|---|
| 282 | } | 
|---|
| 283 |  | 
|---|
| 284 | /// \} | 
|---|