docs: def read_flat(self):
          """
          Read a PNG file and decode it into flat row flat pixel format.
  
          Returns (*width*, *height*, *pixels*, *metadata*).
  
          May use excessive memory.
  
          `pixels` are returned in flat row flat pixel format.
  
          See also the :meth:`read` method which returns pixels in the
          more stream-friendly boxed row flat pixel format.
          """
          x, y, pixel, meta = self.read()
          arraycode = 'BH'[meta['bitdepth'] > 8]
          pixel = array(arraycode, itertools.chain(*pixel))
          return x, y, pixel, meta