compressFileToFile function

Future<CompressResult> compressFileToFile({
  1. required File inputFile,
  2. required File outputFile,
  3. CompressConfig config = const CompressConfig(),
})

Compresses inputFile and writes the result to outputFile.

The parent directory of outputFile must already exist. Returns the CompressResult for inspection (e.g. compression ratio).

Example:

final result = await compressFileToFile(
  inputFile: File('/photos/large.jpg'),
  outputFile: File('/photos/thumb.jpg'),
  config: CompressConfig(quality: 75, maxWidth: 800, maxHeight: 600),
);
print(result.summary);

Implementation

Future<CompressResult> compressFileToFile({
  required File inputFile,
  required File outputFile,
  CompressConfig config = const CompressConfig(),
}) async {
  final Uint8List inputBytes = await inputFile.readAsBytes();
  final result = await AllImageCompress.fromBytes(bytes: inputBytes, config: config);
  await outputFile.writeAsBytes(result.bytes, flush: true);
  return result;
}