![](/img/trans.png)
[英]Taking a photo with camera using Xamarin Forms nuget Xam.Plugin.Media
[英]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.