compressImage method
Future<ImageCompressResult>
compressImage(
- String path,
- ImageCompressConfig config,
- String? outputDir,
- String? outputName,
override
Implementation
@override
Future<ImageCompressResult> compressImage(
String path,
ImageCompressConfig config,
String? outputDir,
String? outputName,
) async {
// Web output is a blob: URL; outputDir/outputName don't apply. A null
// config.format tells the JS engine to keep the source's format.
await _ensureImageLoaded();
try {
final cfg = config.toMap().jsify()! as JSObject;
final res = (await _jsCompressImage(path, cfg).toDart).dartify() as Map;
return ImageCompressResult.fromMap(res.cast<dynamic, dynamic>());
} catch (e) {
throw ImageCompressException('image_compress_failed', e.toString());
}
}