code: def topil(self):
          
          from PIL import Image
  
          # Leptonica manages data in words, so it implicitly does an endian
          # swap.  Tell Pillow about this when it reads the data.
          pix = self
          if sys.byteorder == 'little':
              if self.mode == 'RGB':
                  raw_mode = 'XBGR'
              elif self.mode == 'RGBA':
                  raw_mode = 'ABGR'
              elif self.mode == '1':
                  raw_mode = '1;I'
                  pix = Pix(lept.pixEndianByteSwapNew(pix._cdata))
              else:
                  raw_mode = self.mode
                  pix = Pix(lept.pixEndianByteSwapNew(pix._cdata))
          else:
              raw_mode = self.mode  # no endian swap needed
  
          size = (pix._cdata.w, pix._cdata.h)
          bytecount = pix._cdata.wpl * 4 * pix._cdata.h
          buf = ffi.buffer(pix._cdata.data, bytecount)
          stride = pix._cdata.wpl * 4
  
          im = Image.frombytes(self.mode, size, buf, 'raw', raw_mode, stride)
  
          return im
docs: Returns a PIL.Image version of this Pix