toPNG method

  1. @override
Future<Uint8List> toPNG()
override

Returns the pixels of this as a PNG data.

Implementation

@override
Future<Uint8List> toPNG() async {
  var blob = await _canvas.asBlob(type: 'image/png');

  var reader = FileReader();

  var completer = Completer<Uint8List>();

  reader.onLoadEnd.listen((_) {
    var jsResult = reader.result as JSArrayBuffer;
    var byteBuffer = jsResult.toDart;
    var bytes = byteBuffer.asUint8List(0, byteBuffer.lengthInBytes);
    completer.complete(bytes);
  });

  reader.readAsArrayBuffer(blob);

  return completer.future;
}