title: work with binary (1 bit per pixel) images c++
body: <p>The problem follows. It is necessary to work with very large binary images (100000x100000 pixels). Initially did it using Qt's QImage class, it supports Format_Mono format that stores an image as a 1-bit per pixel. And in general, everything was fine, until it turned out that QPainter has limited rasterizer and draw on images whose size is more short (32767x32767) can not be, it just cut off.</p>
  
  <p>I was not able to combine images by more than 32767x32767. Then, I began to look closely to individual libraries. The OpenCV, as I understand it, does not support this format. Regarding ImageMagick, it supports the construction of the image as one-bit per pixel and save it in the same format. However, while working with the image is still stored as an 8bit per pixel and hence there arises a shortage of RAM. Then I decided to try CImg, but it don't suppor 1bbp format, as i understand:</p>
  
  <blockquote>
    <p>the overall size of the used memory for one instance image (in bytes)
    is then 'width x height x depth x dim x sizeof (T)</p>
  </blockquote>
  
  <p>Where sizeof (T) of course can not be less than sizeof (char)...</p>
  
  <p>It was interesting how QImage in principle works with its Format_Mono format, but honestly, I was tangled in the source code.</p>
  
  <p>So, i have the next question. Is there a library that implemented the ability to create and work with binary images, and in this case they really are stored as a 1-bit per pixel in RAM?</p>