compressBytesAndroid static method

Future<Uint8List> compressBytesAndroid(
  1. Uint8List image, {
  2. required int imageScaleSize,
  3. required int minimumHeight,
  4. required int minimumWidth,
  5. KatCompressFormat format = KatCompressFormat.webp,
})

hàm này dùng để compress image trên Android, với quality được tính toán để ảnh sau khi nén đạt xấp xỉ imageScaleSize MB.

kat_common không có settings store của riêng nó - imageScaleSize, minimumHeightminimumWidth do app gọi tự resolve (ví dụ từ SettingUtils.getUserSetting()) rồi truyền vào, thay vì hàm này tự đọc.

Implementation

static Future<Uint8List> compressBytesAndroid(
  Uint8List image, {
  required int imageScaleSize,
  required int minimumHeight,
  required int minimumWidth,
  KatCompressFormat format = KatCompressFormat.webp,
}) async {
  // calculate expected after compressed quality
  var expectQuality = (1024 * 2 * imageScaleSize / image.lengthInBytes * 100)
      .round();
  var quality = expectQuality < 100 ? expectQuality : 100;

  return compressAndroidList(
    image,
    quality: quality,
    height: minimumHeight,
    width: minimumWidth,
    format: format,
  );
}