compressImage static method
图片压缩
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;
}
}