generateThumbnailAndSave static method

Future<ImageResult<String>> generateThumbnailAndSave(
  1. dynamic source,
  2. String savePath, {
  3. int maxWidth = 150,
  4. int maxHeight = 150,
  5. int quality = 80,
  6. ThumbnailFormat format = ThumbnailFormat.jpeg,
})

生成缩略图并保存到指定路径

sourcegenerateThumbnail savePath 完整的保存路径(含文件名和扩展名),由调用方保证目录存在 其余参数同 generateThumbnail

返回 ImageResult<String>,data 为保存的文件路径。

Implementation

static Future<ImageResult<String>> generateThumbnailAndSave(
  dynamic source,
  String savePath, {
  int maxWidth = 150,
  int maxHeight = 150,
  int quality = 80,
  ThumbnailFormat format = ThumbnailFormat.jpeg,
}) async {
  final result = await generateThumbnail(
    source,
    maxWidth: maxWidth,
    maxHeight: maxHeight,
    quality: quality,
    format: format,
  );

  if (!result.isSuccess) {
    return ImageResult.failure(result.error!);
  }

  try {
    final outFile = File(savePath);
    final outDir = outFile.parent;
    if (!await outDir.exists()) {
      await outDir.create(recursive: true);
    }
    await outFile.writeAsBytes(result.data!);
    return ImageResult.success(savePath);
  } catch (e) {
    return ImageResult.failure('写入文件失败: $e');
  }
}