compress_handler.dart
1.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import 'dart:io';
import 'package:appframe/services/dispatcher.dart';
import 'package:flutter_image_compress/flutter_image_compress.dart';
import 'package:path/path.dart' as path;
import 'package:path_provider/path_provider.dart';
class CompressImageHandler implements MessageHandler {
@override
Future<dynamic> handleMessage(dynamic params) async {
String url = params['url'];
int quality = params['quality'];
int compressedWidth = params['compressedWidth'];
int compressedHeight = params['compressedHeight'];
var originFile = File(url);
// 获取后缀名
String ext = path.extension(url);
final Directory tempDir = await getTemporaryDirectory();
final String uniqueFileName = '${DateTime.now().millisecondsSinceEpoch}$ext';
var result = await FlutterImageCompress.compressAndGetFile(
originFile.absolute.path,
uniqueFileName,
quality: 88,
rotate: 180,
);
return true;
}
}
class CompressVideoHandler implements MessageHandler {
@override
Future handleMessage(dynamic params) {
// TODO: implement handleMessage
throw UnimplementedError();
}
}