mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
opt image crop
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -149,7 +149,7 @@ abstract class CommonRichTextPubPageState<T extends CommonRichTextPubPage>
|
||||
|
||||
Future<void> onCropImage(int index) async {
|
||||
late final colorScheme = ColorScheme.of(context);
|
||||
CroppedFile? croppedFile = await ImageCropper().cropImage(
|
||||
CroppedFile? croppedFile = await ImageCropper.platform.cropImage(
|
||||
sourcePath: pathList[index],
|
||||
uiSettings: [
|
||||
AndroidUiSettings(
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -488,31 +488,39 @@ class _EditProfilePageState extends State<EditProfilePage> {
|
||||
SmartDialog.showToast('不能选GIF');
|
||||
return;
|
||||
}
|
||||
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: [CropAspectRatioPresetCustom()],
|
||||
lockAspectRatio: true,
|
||||
hideBottomControls: true,
|
||||
cropStyle: CropStyle.circle,
|
||||
initAspectRatio: CropAspectRatioPresetCustom(),
|
||||
),
|
||||
IOSUiSettings(
|
||||
title: '裁剪',
|
||||
aspectRatioPresets: [CropAspectRatioPresetCustom()],
|
||||
cropStyle: CropStyle.circle,
|
||||
aspectRatioLockEnabled: true,
|
||||
resetAspectRatioEnabled: false,
|
||||
aspectRatioPickerButtonHidden: true,
|
||||
),
|
||||
],
|
||||
);
|
||||
if (croppedFile != null) {
|
||||
String? imagePath;
|
||||
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: [CropAspectRatioPresetCustom()],
|
||||
lockAspectRatio: true,
|
||||
hideBottomControls: true,
|
||||
cropStyle: CropStyle.circle,
|
||||
initAspectRatio: CropAspectRatioPresetCustom(),
|
||||
),
|
||||
IOSUiSettings(
|
||||
title: '裁剪',
|
||||
aspectRatioPresets: [CropAspectRatioPresetCustom()],
|
||||
cropStyle: CropStyle.circle,
|
||||
aspectRatioLockEnabled: true,
|
||||
resetAspectRatioEnabled: false,
|
||||
aspectRatioPickerButtonHidden: true,
|
||||
),
|
||||
],
|
||||
);
|
||||
if (croppedFile != null) {
|
||||
imagePath = croppedFile.path;
|
||||
}
|
||||
} else {
|
||||
imagePath = pickedFile.path;
|
||||
}
|
||||
if (imagePath != null) {
|
||||
Request()
|
||||
.post(
|
||||
'/x/member/web/face/update',
|
||||
@@ -522,7 +530,7 @@ class _EditProfilePageState extends State<EditProfilePage> {
|
||||
data: FormData.fromMap({
|
||||
'dopost': 'save',
|
||||
'DisplayRank': 10000,
|
||||
'face': await MultipartFile.fromFile(croppedFile.path),
|
||||
'face': await MultipartFile.fromFile(imagePath),
|
||||
}),
|
||||
)
|
||||
.then((res) {
|
||||
|
||||
Reference in New Issue
Block a user