簡體   English   中英

如何使用 plugin.media for xamarin.forms 正確調整照片大小?

[英]How to correctly resize photo using 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:

按照建議使用 RotateImage 嘗試了以下操作,但仍然沒有樂趣:

var mediaOptions = new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
    PhotoSize = PhotoSize.Custom,
    RotateImage = true,
    CustomPhotoSize = 5,
    Directory = "MyFolder",
    Name = _item.Id + ".jpg",
    SaveToAlbum = true
};

編輯3:

嘗試使用 MaxWidthHeight 設置 RotateImage,但仍然無法正常工作:

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 並使用提供的數據流手動存儲它。

就我而言,我必須通過網絡連接發送圖像。 在我的情況下,本地存儲上的完整大小和在應用程序流中調整大小的行為很方便。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM