title: Read image and access bytes in boost::gil
body: <p>Is it possible to:</p>
  
  <ul>
  <li>read an image given by just a filename (not knowing the image format) to a 2d matrix rgb uncompressed form (e.g. read an JPG to a 2d array)</li>
  <li>access the bytes of that image, copy them, change them... (e.g. inverse the colors, <strong><em>I need a pointer to the image bytes, setters/getters won't do</em></strong> )</li>
  <li>save those bytes to any given image format (e.g. save the inversed image to PNG)</li>
  </ul>
  
  <p>Is it possible with <code>boost::gil</code> ? Maybe there is a different library more appropriate for such a task?</p>
  
  <p>Sample code would be highly appreciated. </p>