修改上传图片 鲁班压缩不支持的图片

This commit is contained in:
YangYuhao 2023-07-04 16:01:13 +08:00
parent a0e4428f15
commit 5cf1946996
3 changed files with 47 additions and 12 deletions

View File

@ -36,7 +36,7 @@ class FriendslistPage extends StatelessWidget {
onRefresh: _onRefresh, onRefresh: _onRefresh,
onLoading: _onLoading, onLoading: _onLoading,
child: ListView.builder( child: ListView.builder(
// padding: EdgeInsets.all(16.sp), padding: EdgeInsets.all(10.sp),
itemCount: logic.lists.length, itemCount: logic.lists.length,
itemBuilder: (context, index) { itemBuilder: (context, index) {
return ListItem(logic.lists[index]); return ListItem(logic.lists[index]);
@ -70,6 +70,7 @@ class FriendslistPage extends StatelessWidget {
}); });
}, },
child: CachedNetworkImage( child: CachedNetworkImage(
fit: BoxFit.cover,
imageUrl: item.avatar, imageUrl: item.avatar,
width: 53.sp, width: 53.sp,
height: 53.sp, height: 53.sp,

View File

@ -243,7 +243,10 @@ class MinefragmentPage extends StatelessWidget {
GestureDetector( GestureDetector(
behavior: HitTestBehavior.opaque, behavior: HitTestBehavior.opaque,
onTap: ()async { onTap: ()async {
logic.like_me_count_new = 0;
logic.update();
if(null!=logic.like_me_count){ if(null!=logic.like_me_count){
SharedPreferences prefs = await SharedPreferences.getInstance(); SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setInt("likeMeCount", logic.like_me_count); prefs.setInt("likeMeCount", logic.like_me_count);
} }
@ -301,6 +304,7 @@ class MinefragmentPage extends StatelessWidget {
GestureDetector( GestureDetector(
behavior: HitTestBehavior.opaque, behavior: HitTestBehavior.opaque,
onTap: () async{ onTap: () async{
logic.recent_visit_count_new = 0;
if(null!=logic.recent_visit_count){ if(null!=logic.recent_visit_count){
SharedPreferences prefs = await SharedPreferences.getInstance(); SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setInt("recentVisitCount", logic.recent_visit_count); prefs.setInt("recentVisitCount", logic.recent_visit_count);

View File

@ -12,6 +12,7 @@ import 'package:intl/intl.dart';
import '../common/config.dart'; import '../common/config.dart';
import '../network/api.dart'; import '../network/api.dart';
import '../network/dio_manager.dart'; import '../network/dio_manager.dart';
import 'package:image/image.dart' as img;
typedef void MyCallback(String result); typedef void MyCallback(String result);
@ -41,7 +42,13 @@ void updataQiniu(String filePath,String name,String path ,String quToken,MyCallb
options: PutOptions(controller: putController, key: imgPath)); options: PutOptions(controller: putController, key: imgPath));
} }
const List<String> jpgSuffix = ["jpg", "jpeg", "JPG", "JPEG","png", "PNG"];
bool isImageJpgOrPng(String imagePath) {
String extension = imagePath.split('.').last.toLowerCase();
return jpgSuffix.contains(extension) ;
}
// //
void upDataImage(String quToken ,XFile pickedFile,String updataRoute,MyCallback myCallback) async{ void upDataImage(String quToken ,XFile pickedFile,String updataRoute,MyCallback myCallback) async{
// print(quToken); // print(quToken);
@ -60,20 +67,43 @@ void upDataImage(String quToken ,XFile pickedFile,String updataRoute,MyCallback
} }
} }
var path = await getApplicationSupportDirectoryPath(); var path = await getApplicationSupportDirectoryPath();
if(isImageJpgOrPng(pickedFile.path)){
CompressObject compressObject = CompressObject( CompressObject compressObject = CompressObject(
imageFile:File(pickedFile.path), //image imageFile:File(pickedFile.path), //image
path:path, //compress to path path:path, //compress to path
quality: 80,//first compress quality, default 80 quality: 80,//first compress quality, default 80
step: 9,//compress quality step, The bigger the fast, Smaller is more accurate, default 6 step: 9,//compress quality step, The bigger the fast, Smaller is more accurate, default 6
mode: CompressMode.LARGE2SMALL,//default AUTO mode: CompressMode.LARGE2SMALL,//default AUTO
); );
Luban.compressImage(compressObject).then((_path) { Luban.compressImage(compressObject).then((_path) {
updataQiniu(_path.toString(),pickedFile.name,updataRoute,quToken,(result){ updataQiniu(_path.toString(),pickedFile.name,updataRoute,quToken,(result){
myCallback(result);
});
});
}else{
updataQiniu(pickedFile.path,pickedFile.name,updataRoute,quToken,(result){
myCallback(result); myCallback(result);
}); });
}); }
}
void convertImageFormat(String imagePath, String outputPath, String outputFormat) {
//
final File inputFile = File(imagePath);
final List<int> inputBytes = inputFile.readAsBytesSync();
//
final img.Image image = img.decodeImage(inputBytes)!;
//
final img.Image convertedImage = img.copyResize(image, width: image.width, height: image.height);
final List<int>? outputBytes = img.encodeNamedImage(convertedImage, outputFormat);
//
final File outputFile = File(outputPath);
outputFile.writeAsBytesSync(outputBytes!);
} }