$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [Boost-users] [GIL] How can I copy a subimage_view to a view?
From: blp330 (blp330_at_[hidden])
Date: 2009-04-27 13:36:34
Hi, 
Thanks for your reply, I knew that.
Oh, let me clarify what problem I actually have:
Consider the class Image:
class Image 
{
public:
 
 Image() 
 {
 }
 Image(std::string& file)
 {
  // using io extension to read image.
  // ...
 }
 Image(const Image& other)
 {
   img = other.img;
   // view = boost::gil::view(img); 
   view = other.view;
 }
 Image& Image::Crop(int x, int y, int width, int height)
 {
  view = boost::gil::subimage_view(view, x, y, width, height);
  return *this;
 }
 void Image::Crop(int x, int y, int width, int height, Image& out) const
 {
  out = *this;
  out.Crop(x, y, width, height);
 } 
 Image& Image::Fill(int x1, int y1, int x2, int y2, 
                           int r, int g, int b)
 {
  boost::gil::rgb8_pixel_t pixel(r, g, b);
 
  boost::gil::fill_pixels(
   boost::gil::subimage_view(view, x1, y1, x2 - x1, y2 - y1), pixel);
  return *this;
 } 
private:
  boost::gil::rgb8_image_t img;
  boost::gil::rgb8_image_t::view_t view;
};
Image a("a.png"); // 100x100 size.
a.Crop(100, 100, 50, 50);  // Now, the a should be 50x50 size.
Image b;
a.Crop(0, 0, 10, 10, b);   // b should be 10x10.
a.Fill(0, 0, 10, 10, 0xff, 0xff, 0xff);    // This will cause b also filled
with white color.
How to change my Image class to make a.Fill not to affect b?
Thank you very much.
-- View this message in context: http://www.nabble.com/-GIL--How-can-I-copy-a-subimage_view-to-a-view--tp23234549p23261286.html Sent from the Boost - Users mailing list archive at Nabble.com.