当我从图库中选择图像或从相机中获取图像时,如何(压缩)图像的大小? Flutter 有封装或者方法吗?
import 'package:image_picker/image_picker.dart';
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
File _image;
Future getImage() async {
var image = await ImagePicker.pickImage(source: ImageSource.camera);
setState(() {
_image = image;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Image Picker Example'),
),
body: Center(
child: _image == null
? Text('No image selected.')
: Image.file(_image),
),
floatingActionButton: FloatingActionButton(
onPressed: getImage,
tooltip: 'Pick Image',
child: Icon(Icons.add_a_photo),
),
);
}
}`
这是您可以使用的 getImage 函数:
Future getImage() async {
var image = await ImagePicker.pickImage(
source: ImageSource.gallery, imageQuality: 50, maxHeight: 600, maxWidth: 900);
setState(() {
_image = image;
});
}
您可以设置最大分辨率和图像质量,范围为 1 到 100。
您可以在调用 pickImage 函数时提供宽度属性和质量
var image = await ImagePicker.pickImage(source: ImageSource.camera, imageQuality: int, maxWidth: int);
宽度用于减小图像的尺寸(宽度*高度),质量是将使用的过滤器
如果您想要固定大小,请先使用“SizedBox”,然后添加图像作为子项:
大小框( 身高:40, 宽度:40, 子: Image.asset("icons/coins.png", 宽度: 100.0, 高度:100.0), ),
对于动态尺寸: 图像质量:70,最大宽度:100
示例:
child: CircleAvatar(
backgroundImage: NetworkImage('apilink/StudentsPhoto/S6247.jpg'),
maxRadius: 30,
),
你可以改变
imageQuality: 50,
maxHeight: 600,
maxWidth: 900