exec method
Implementation
Future<Uint8List> exec({
required XFile photo,
}) async {
try {
final photoData = await photo.readAsBytes();
if (kDebugMode) {
print('Imageに変換開始');
print(DateTime.now());
}
/// 処理が重いため、computeで別スレッドで実行する
final image = await compute(decodeImage, photoData);
if (image == null) {
throw ServiceException(
ServiceErrorType.invalidImageFormat,
ServiceErrorType.invalidImageFormat.message,
);
}
if (kDebugMode) {
print('Imageに変換終了');
print(DateTime.now());
}
final clopedImage = await compute(_clopedImageWrapper, image);
if (kDebugMode) {
print('Imageクロップ終了');
print(DateTime.now());
}
final clopedPngData = await compute(encodeJpg, clopedImage);
if (kDebugMode) {
print('Png変換終了');
print(DateTime.now());
}
return clopedPngData;
} catch (error) {
throw ServiceException(
ServiceErrorType.imageConvertError,
ServiceErrorType.imageConvertError.message,
);
}
}