'internal: read more image data'

def load_read(self, read_bytes):

    while (self.__idat == 0):
        self.fp.read(4)
        (cid, pos, length) = self.png.read()
        if (cid not in ['IDAT', 'DDAT']):
            self.png.push(cid, pos, length)
            return ''
        self.__idat = length
    if (read_bytes <= 0):
        read_bytes = self.__idat
    else:
        read_bytes = min(read_bytes, self.__idat)
    self.__idat = (self.__idat - read_bytes)
    return self.fp.read(read_bytes)
