Я использую image_picker для выбора изображений с телефона пользователя, но как только изображение будет выбрано, оно будет иметь очень низкое разрешение.
Есть ли способ решить эту проблему?Я хочу использовать картинки лучшего качества, но не могу понять!это код для отображения изображения и использования средства выбора изображений:
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'dart:io';
import 'package:uni_markt/models/product.dart';
class ImageInput extends StatefulWidget {
final Function setImage;
final Product product;
ImageInput(this.setImage, this.product);
@override
State<StatefulWidget> createState() {
return _ImageInputState();
}
}
class _ImageInputState extends State<ImageInput> {
File _imageFile;
void _getImage(BuildContext context, ImageSource source) {
ImagePicker.pickImage(source: source, maxWidth: 400).then((File image) {
setState(() {
_imageFile = image;
});
widget.setImage(image);
Navigator.pop(context);
});
}
void _openImagePicker(BuildContext context) {
showModalBottomSheet(
context: context,
builder: (BuildContext context) {
return Container(
height: 150,
padding: EdgeInsets.all(10),
child: Column(
children: <Widget>[
Text(
'Pick an Image source',
style: TextStyle(fontWeight: FontWeight.bold),
),
SizedBox(
height: 10,
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
FlatButton(
textColor: Theme.of(context).primaryColor,
child: Icon(
Icons.art_track,
size: 90,
),
onPressed: () {
_getImage(context, ImageSource.gallery);
},
),
SizedBox(
width: 20,
),
FlatButton(
textColor: Theme.of(context).primaryColor,
child: Icon(
Icons.camera_alt,
size: 70,
),
onPressed: () {
_getImage(context, ImageSource.camera);
},
),
],
),
],
),
);
},
);
}
@override
Widget build(BuildContext context) {
final Color color = Theme.of(context).primaryColor;
Widget previewImage = Text('Please select an image');
if (_imageFile != null) {
previewImage = Image.file(_imageFile,
fit: BoxFit.cover,
height: 300,
alignment: Alignment.center,
width: MediaQuery.of(context).size.width);
} else if (widget.product != null) {
previewImage = Image.network(widget.product.image,
fit: BoxFit.cover,
height: 300,
alignment: Alignment.center,
width: MediaQuery.of(context).size.width);
}
return Column(
children: <Widget>[
OutlineButton(
borderSide: BorderSide(color: color, width: 3),
onPressed: () {
_openImagePicker(context);
},
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Icon(
Icons.camera_alt,
color: color,
),
SizedBox(
width: 5,
),
Text(
'Add Image',
style: TextStyle(
color: color,
),
),
],
),
),
SizedBox(
height: 10,
),
previewImage,
],
);
Я думаю, что я что-то пропускаю, но я знаю, что.Может кто-нибудь, пожалуйста, помогите решить эту проблему?