compressImage static method

Future<String> compressImage(
  1. Uint8List imageBytes
)

图片压缩

Implementation

static Future<String> compressImage(Uint8List imageBytes) async {
  try {
    final ui.Codec codec = await ui.instantiateImageCodec(
      imageBytes,
      targetWidth: 1080, // 压缩到1080宽度
    );
    final ui.FrameInfo frameInfo = await codec.getNextFrame();
    final ui.Image image = frameInfo.image;

    final ByteData? byteData = await image.toByteData(
      format: ui.ImageByteFormat.png,
    );

    if (byteData == null) {
      throw Exception('图片压缩失败');
    }

    final Uint8List compressedBytes = byteData.buffer.asUint8List();
    return base64Encode(compressedBytes);
  } catch (e) {
    print('❌ 图片压缩失败: $e');
    rethrow;
  }
}