downsizeImage function

Future<XFile> downsizeImage(
  1. XFile xfile, {
  2. double scale = 0.5,
  3. int quality = 85,
})

Implementation

Future<XFile> downsizeImage(XFile xfile,
    {double scale = 0.5, int quality = 85}) async {
  // 이미지 파일을 Uint8List로 변환
  final bytes = await xfile.readAsBytes();

  // 이미지가 2MB를 초과하는지 확인하고, 초과한다면 다운스케일링
  Uint8List resizedImageData =
      resizeImageIfNeeded(bytes, scale: scale, quality: quality);

  // 기존 파일 경로에 다운스케일링된 이미지 덮어쓰기
  return XFile.fromData(
    resizedImageData,
    name: xfile.name,
    path: xfile.path,
    mimeType: xfile.mimeType,
  );
}