<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _imgdata(self, width, height, state_size=None, start='', dataset=''):
 """Generate image pixels. Parameters width : `int` Image width. height : `int` Image height. state_size : `int` or `None`, optional State size to use for generation (default: `None`). start : `str`, optional Initial state (default: ''). dataset : `str`, optional Dataset key prefix (default: ''). Raises ------ RuntimeError If generator is empty. Returns ------- `generator` of `int` Pixel generator. """

        size = width * height
        if size > 0 and start:
            yield state_to_pixel(start)
            size -= 1

        while size > 0:
            prev_size = size

            pixels = self.generate(state_size, start, dataset)
            pixels = islice(pixels, 0, size)

            for pixel in pixels:
                yield state_to_pixel(pixel)
                size -= 1

            if prev_size == size:
                if start:
                    yield from repeat(state_to_pixel(start), size)
                else:
                    raise RuntimeError('empty generator')