#include <boost/gil/typedefs.hpp>
#include <boost/gil/extension/io/png_dynamic_io.hpp>
#include <boost/assign/std/vector.hpp>
#include <utilgil.hpp>
#include <utilstl.hpp>

using namespace boost::gil;
using namespace boost::assign;

//GCC Build String
//g++ sample7.cpp -g -lpng -lz -I . -I ~/lib/boost -I ~/lib  

int main(int args, char** argv)
{
        boost::gil::rgb8_image_t img_a;
        png_read_image("small.png",img_a);             

        rgb8_image_t img_b(200,200);
        fill_pixels(boost::gil::view(img_b),
                rgb8_pixel_t(230,230,230));     
       
        int x = (view(img_b).width()-view(img_a).width())/2;
        int y = (view(img_b).height()-view(img_a).height())/2;

        copy_pixels(view(img_a),subimage_view(view(img_b),x,y,
                view(img_a).width(),view(img_a).height()));
       
        png_write_view("sample7.png", view(img_b));
}