opt image crop

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-09-26 09:56:11 +08:00
parent 33c8d69a58
commit a799b15155
3 changed files with 77 additions and 64 deletions

View File

@@ -5,6 +5,7 @@ import 'package:PiliPlus/models_new/fav/fav_folder/list.dart';
import 'package:PiliPlus/utils/extension.dart';
import 'package:PiliPlus/utils/fav_utils.dart';
import 'package:PiliPlus/utils/image_utils.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:easy_debounce/easy_throttle.dart';
import 'package:flutter/material.dart';
@@ -115,44 +116,48 @@ class _CreateFavPageState extends State<CreateFavPage> {
imageQuality: 100,
);
if (pickedFile != null && mounted) {
CroppedFile? croppedFile = await ImageCropper().cropImage(
sourcePath: pickedFile.path,
uiSettings: [
AndroidUiSettings(
toolbarTitle: '裁剪',
toolbarColor: theme.colorScheme.secondaryContainer,
toolbarWidgetColor: theme.colorScheme.onSecondaryContainer,
statusBarLight: theme.colorScheme.brightness.isLight,
aspectRatioPresets: [CropAspectRatioPreset.ratio16x9],
lockAspectRatio: true,
hideBottomControls: true,
initAspectRatio: CropAspectRatioPreset.ratio16x9,
),
IOSUiSettings(
title: '裁剪',
// aspectRatioPresets: [CropAspectRatioPreset.ratio16x9],
// aspectRatioLockEnabled: false,
// resetAspectRatioEnabled: false,
// aspectRatioPickerButtonHidden: true,
),
],
);
if (croppedFile != null) {
MsgHttp.uploadImage(
path: croppedFile.path,
bucket: 'medialist',
dir: 'cover',
).then((res) {
if (context.mounted) {
if (res['status']) {
_cover = res['data']['location'];
(context as Element).markNeedsBuild();
} else {
SmartDialog.showToast(res['msg']);
}
}
});
String imgPath = pickedFile.path;
if (Utils.isMobile) {
CroppedFile? croppedFile = await ImageCropper.platform.cropImage(
sourcePath: pickedFile.path,
uiSettings: [
AndroidUiSettings(
toolbarTitle: '裁剪',
toolbarColor: theme.colorScheme.secondaryContainer,
toolbarWidgetColor: theme.colorScheme.onSecondaryContainer,
statusBarLight: theme.colorScheme.brightness.isLight,
aspectRatioPresets: [CropAspectRatioPreset.ratio16x9],
lockAspectRatio: true,
hideBottomControls: true,
initAspectRatio: CropAspectRatioPreset.ratio16x9,
),
IOSUiSettings(
title: '裁剪',
// aspectRatioPresets: [CropAspectRatioPreset.ratio16x9],
// aspectRatioLockEnabled: false,
// resetAspectRatioEnabled: false,
// aspectRatioPickerButtonHidden: true,
),
],
);
if (croppedFile != null) {
imgPath = croppedFile.path;
}
}
MsgHttp.uploadImage(
path: imgPath,
bucket: 'medialist',
dir: 'cover',
).then((res) {
if (context.mounted) {
if (res['status']) {
_cover = res['data']['location'];
(context as Element).markNeedsBuild();
} else {
SmartDialog.showToast(res['msg']);
}
}
});
}
} catch (e) {
SmartDialog.showToast(e.toString());