我正在尝试使用xamarin.forms plugin.media插件拍摄照片并以特定的尺寸保存。这是我的代码:
private async void ButtonPhoto_OnClicked(object sender, EventArgs e)
{
if (CrossMedia.Current.IsCameraAvailable && CrossMedia.Current.IsTakePhotoSupported)
{
var mediaOptions = new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
PhotoSize = PhotoSize.Custom,
MaxWidthHeight = 250,
Directory = "MyFolder",
Name = _item.Id + ".jpg",
SaveToAlbum = true
};
var file = await CrossMedia.Current.TakePhotoAsync(mediaOptions);
}
}
实际保存到所需的文件夹工作的实际保存,但是,调整大小的选项被忽略了。我希望将图片宽度设置为不超过250像素。谁能发现我出错的地方?
编辑1:
我也尝试了以下内容,但仍然没有欢乐:
var mediaOptions = new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
PhotoSize = PhotoSize.MaxWidthHeight,
MaxWidthHeight = 250,
Directory = "MyFolder",
Name = _item.Id + ".jpg",
SaveToAlbum = true
};
编辑2:
使用建议的旋转图,但仍然没有欢乐:
var mediaOptions = new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
PhotoSize = PhotoSize.Custom,
RotateImage = true,
CustomPhotoSize = 5,
Directory = "MyFolder",
Name = _item.Id + ".jpg",
SaveToAlbum = true
};
编辑3:
尝试使用MaxWidthheight设置旋转图,但仍无法正常工作:
var mediaOptions = new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
PhotoSize = PhotoSize.MaxWidthHeight,
MaxWidthHeight = 150,
RotateImage = true,
Directory = "MyFolder",
Name = _item.Id + ".jpg",
SaveToAlbum = true,
CompressionQuality = 75
};
savetoalbum选项始终将原始照片存储在当地的完整分辨率中。
图像大小仅在返回的MediaFile.getStream()数据中应用。
因此,您可以使用提供的数据流停用savetoalbum并手动存储它。
在我的情况下,我必须通过网络连接发送图像。在我的情况下