convert static method

Future<void> convert(
  1. File input,
  2. File output, {
  3. String? outputFormat,
  4. int? quality,
  5. int? maxDim,
})

Implementation

static Future<void> convert(File input, File output,
    {String? outputFormat, int? quality, int? maxDim}) async {
  Process p = await Process.start("magick", [
    input.path,
    if (quality != null) ...[
      "-quality",
      quality.toString(),
    ],
    if (maxDim != null) ...["-resize", "$maxDim>x$maxDim>"],
    if (outputFormat != null) ...[
      "-format",
      outputFormat,
    ],
    output.path
  ]);

  p.stdout.pipe(stdout);
  p.stderr.pipe(stderr);
  int exitCode = await p.exitCode;
  print("Magick exit code: $exitCode");

  if (exitCode != 0) {
    throw Exception("ImageMagick command failed with exit code $exitCode");
  }
}