如何以两种不同的尺寸从图像选择器中保存图像
How to save a image from image picker in flutter in two different size
我正在编写代码以使用设备相机选择图像并将其存储在变量中。我曾保存原始照片,但在同一个地方我还需要保存照片,但分辨率较低,以便我可以将其用作缩略图。
我需要将这两个图像上传到 firebase 存储并在需要时检索它。
Future getImage() async{
var tempImage = await ImagePicker.pickImage(source: ImageSource.camera,imageQuality: 30);
setState(() {
sampleImage=tempImage;
_tempThumb=Image.file(sampleImage,height: 20,width: 20,);
});
}
我的代码适用于将图像存储在 tempImage 变量中,但不知道如何上传存储在 _tempThumb 变量中的小图像
final StorageReference postImageRef= FirebaseStorage.instance.ref().child("Post Images");
var timeKey=new DateTime.now();
final StorageUploadTask uploadTask=postImageRef.child(timeKey.toString()+".jpg").putFile(sampleImage);
var ImageUrl = await(await uploadTask.onComplete).ref.getDownloadURL();
我可以上传全尺寸图片,但不知道如何上传小尺寸图片。
将此添加到您的 pubspec.yaml
:
image: ^2.1.4
添加此导入语句:
import 'package:image/image.dart' as img;
然后首先解码你的图像:
img.Image image = img.decodeImage(tempImage.readAsBytesSync());
然后调整大小:
img.Image thumbnail = img.copyResize(image, width: 20, height: 20);
然后再次编码:
var thumb = img.encodePng(thumbnail);
这给出了一个可以保存到 firebase 的 int 数组。
我正在编写代码以使用设备相机选择图像并将其存储在变量中。我曾保存原始照片,但在同一个地方我还需要保存照片,但分辨率较低,以便我可以将其用作缩略图。 我需要将这两个图像上传到 firebase 存储并在需要时检索它。
Future getImage() async{
var tempImage = await ImagePicker.pickImage(source: ImageSource.camera,imageQuality: 30);
setState(() {
sampleImage=tempImage;
_tempThumb=Image.file(sampleImage,height: 20,width: 20,);
});
}
我的代码适用于将图像存储在 tempImage 变量中,但不知道如何上传存储在 _tempThumb 变量中的小图像
final StorageReference postImageRef= FirebaseStorage.instance.ref().child("Post Images");
var timeKey=new DateTime.now();
final StorageUploadTask uploadTask=postImageRef.child(timeKey.toString()+".jpg").putFile(sampleImage);
var ImageUrl = await(await uploadTask.onComplete).ref.getDownloadURL();
我可以上传全尺寸图片,但不知道如何上传小尺寸图片。
将此添加到您的 pubspec.yaml
:
image: ^2.1.4
添加此导入语句:
import 'package:image/image.dart' as img;
然后首先解码你的图像:
img.Image image = img.decodeImage(tempImage.readAsBytesSync());
然后调整大小:
img.Image thumbnail = img.copyResize(image, width: 20, height: 20);
然后再次编码:
var thumb = img.encodePng(thumbnail);
这给出了一个可以保存到 firebase 的 int 数组。