#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++ sample5.cpp -lpng -lz -I . -I ~/lib/boost -I ~/lib
int main(int args, char** argv)
{
rgb8_image_t img(200,200);
boost::gil::fill_pixels(boost::gil::view(img),
boost::gil::rgb8_pixel_t(170,170,170));
typedef boost::gil::point2<int> point_t;
std::vector<point_t> points;
points += point_t(0,0),
point_t(boost::gil::view(img).width()-1,0),
point_t(boost::gil::view(img).width()-1,boost::gil::view(img).height()-1),
point_t(0,boost::gil::view(img).height()-1),
point_t(0,0);
std::for_each(points.begin(),points.end()-1,points.begin()+1,
draw_line<boost::gil::rgb8_view_t>(boost::gil::view(img),
rgb8_pixel_t(255,0,0)));
png_write_view("sample5.png", boost::gil::view(img));
}