encode method

  1. @override
Uint8List encode(
  1. Image image, {
  2. bool singleFrame = false,
})
override

Encode image to the PNG format.

Implementation

@override
Uint8List encode(Image image, {bool singleFrame = false}) {
  if (!image.hasAnimation || singleFrame) {
    start(1);
    addFrame(image);
  } else {
    start(image.frames.length);
    repeat = image.loopCount;

    if (image.hasPalette) {
      final q = NeuralQuantizer(image);
      _globalQuantizer = q;
      for (final frame in image.frames) {
        if (frame != image) {
          q.addImage(frame);
        }
      }
    }

    for (final frame in image.frames) {
      if (_globalQuantizer != null) {
        final newImage = _globalQuantizer!.getIndexImage(frame);
        addFrame(newImage);
      } else {
        addFrame(frame);
      }
    }
  }
  return finish()!;
}