如何使用plugin.media for xamarin.forms正确调整照片大小



我正在尝试使用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并手动存储它。

在我的情况下,我必须通过网络连接发送图像。在我的情况下

最新更新