Boost logo

Boost Users :

Subject: Re: [Boost-users] [gil] bad_cast exception
From: Olivier Tournaire (olitour_at_[hidden])
Date: 2009-01-29 04:23:56


Thank you Christian.

2009/1/27 Christian Henning <chhenning_at_[hidden]>

> Mhmm, somehow I screwed up. The following compiles fine now:
>
> int main ( int argc , char **argv)
> {
> typedef boost::mpl::vector<
> boost::gil::gray8_image_t,
> boost::gil::gray16_image_t,
> boost::gil::gray32_image_t,
> boost::gil::rgb8_image_t,
> boost::gil::rgb16_image_t,
> boost::gil::rgb32_image_t > my_img_types;
>
> typedef boost::mpl::vector<
> boost::gil::gray8_view_t,
> boost::gil::gray16_view_t,
> boost::gil::gray32_view_t,
> boost::gil::rgb8_view_t,
> boost::gil::rgb16_view_t,
> boost::gil::rgb32_view_t > my_view_types;
>
> boost::gil::any_image<my_img_types> runtime_image;
> boost::gil::any_image_view<my_view_types> runtime_view;
>
> runtime_view = boost::gil::nth_channel_view(
> const_view(runtime_image) , 0 );
>
> return 0;
> }
>
> But when running I'm getting a bad_cast exception. What would you
> expect the retrieve from nth_channel_view call? I mean what can of
> image type is the correct one?

Since it extracts one channel from an image, I thought I could retrieve one
of the following : boost::gil::gray8_view_t, boost::gil::gray16_view_t or
boost::gil::gray32_view_t. I am probably wrong, but is there a way to
achieve such a task ?

Regards,

Olivier

>
>
> Christian
>
>
> On Tue, Jan 27, 2009 at 3:31 PM, Olivier Tournaire <olitour_at_[hidden]>
> wrote:
> >
> >
> > 2009/1/27 Christian Henning <chhenning_at_[hidden]>
> >>
> >> Hi Oliver,
> >
> >
> > Hi Christian,
> >
> >>
> >>
> >> I don't get it to compile even when you put the nth_channel_view call
> >> inside jpeg_write_view for a simple reason. nth_channel_view needs the
> >> reference type of your any_image. But that's not possible since no one
> >> knows what image type the any_image actually is. You can cast your
> >> any_image to a specific image type using gil's variant::_dynamic_cast
> >> member. Then you can use nth_channel_view.
> >>
> >> Are you sure your code compiles? Let me know if you keep having
> troubles.
> >
> > Yes, my code compiles fine with boost 1.36. In attachement, maybe you
> could
> > try.
> >
> > Regards,
> > Olivier
> >>
> >>
> >> Regards,
> >> Christian
> >> _______________________________________________
> >> Boost-users mailing list
> >> Boost-users_at_[hidden]
> >> http://lists.boost.org/mailman/listinfo.cgi/boost-users
> >
> >
> >
> > --
> > Olivier Tournaire
> > MATIS - Institut Géographique National
> > 73, Ave de Paris
> > 94165 St Mandé cedex, France
> >
> > tel: (+33) 1 43 98 80 00 - 71 25
> > fax: (+33) 1 43 98 85 81
> >
> > _______________________________________________
> > Boost-users mailing list
> > Boost-users_at_[hidden]
> > http://lists.boost.org/mailman/listinfo.cgi/boost-users
> >
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>

-- 
Olivier Tournaire
MATIS - Institut Géographique National
73, Ave de Paris
94165 St Mandé cedex, France
tel: (+33) 1 43 98 80 00 - 71 25
fax: (+33) 1 43 98 85 81


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net