imencodeAsync function
async version of imencode
Implementation
Future<(bool, Uint8List)> imencodeAsync(
String ext,
InputArray img, {
VecI32? params,
}) async {
final buffer = VecUChar();
final pSuccess = calloc<ffi.Bool>();
final cExt = ext.toNativeUtf8().cast<ffi.Char>();
void completeFunc(Completer<(bool, Uint8List)> c) {
final success = pSuccess.value;
calloc.free(cExt);
calloc.free(pSuccess);
final u8List = buffer.toU8List(); // will copy data
buffer.dispose();
return c.complete((success, u8List));
}
if (params == null) {
return cvRunAsync0(
(callback) => cimgcodecs.cv_imencode(cExt, img.ref, pSuccess, buffer.ptr, callback),
completeFunc,
);
}
return cvRunAsync0(
(callback) => cimgcodecs.cv_imencode_1(cExt, img.ref, params.ref, pSuccess, buffer.ptr, callback),
completeFunc,
);
}