moveNext method

  1. @override
bool moveNext()
override

Move to the next pixel, returning false if it moved past the end of the image data.

Implementation

@override
bool moveNext() {
  _x++;
  if (_x == width) {
    // skip row stride padding bits
    _x = 0;
    _y++;
    _bitIndex = 0;
    _index = _y * image.rowStride;
    return _y < height;
  }

  final nc = image.numChannels;
  if (palette != null || nc == 1) {
    _bitIndex += 4;
    if (_bitIndex > 7) {
      _bitIndex = 0;
      _index++;
    }
  } else {
    final bpp = nc << 2;
    _bitIndex += bpp;
    while (_bitIndex > 7) {
      _bitIndex -= 8;
      _index++;
    }
  }

  return _index < image.data.length;
}