code: def setImage(self, image):
          
          if image.mode != '1':
              raise ValueError('The image color must be in mode \"1\".')
  
          imgWidth, imgHeight = image.size
          if imgWidth != self.width or imgHeight != self.height:
              raise ValueError('The image must be same dimensions as display ( {0} x {1} ).' \
                  .format(self.width, self.height))
  
          # First then shift left 
          pixByte = [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80]
          bi = 0
          pixs = image.load()
          for x in range( 0, self.width ):
              for y in range( 0, self.height, 8 ):
                  pixBits = 0x00
                  # first then range(8)
                  for py in [0,1,2,3,4,5,6,7]:
                      pixBits |= (0x00 if pixs[x, y+py] == 0 else pixByte[py])
                  self._buffer[bi] = pixBits
                  bi += 1
docs: !
          \~english
          Convert image to the buffer, The image mode must be 1 and image size 
          equal to the display size image type is Python Imaging Library image.
          @param image: a PIL image object
  
          \~chinese
          将图像转换为缓冲区，这个图像的色彩模式必须为 1 同时图像大小必须等于显存大小，
          图像类型： PIL Image (Python Imaging Library)
          @param image: PIL图像对象
  
          \n \~
          @note
          <pre>
          ssd1306.setImage( aPILImage )
          ssd1306.display()
          </pre>