如何获取在Xamarin中拍摄的照片的宽度

时间:2019-05-09 17:03:44

标签: c# xamarin xamarin.forms

我有以下代码在Xamarin中拍照:

MediaFile photo = await Plugin.Media.CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions()
{
    SaveToAlbum = true,
    Name = fileName                
});

但是,在拍摄照片之后,我想获取图像的宽度。我以为可能有一个:

photo.Width

但是没有。 PhotoSize上有一个StoreCameraMediaOptions属性,但这似乎是一种决定大小而不是检索大小的方法。

是否可以在Xamarin或现有的插件中完成此操作?

2 个答案:

答案 0 :(得分:2)

使用FFImageLoadingImageInformation可为您提供原始的高度和宽度, 您可以将媒体文件分配给图像,然后获取呈现该媒体文件的图像的宽度

   var image = new CachedImage()
    {
        Source = ImageSource.FromStream(() => photo.GetStream())
    };

    image.Success += (sender, e) =>
    {
         var h = e.ImageInformation.OriginalHeight;
         var w = e.ImageInformation.OriginalWidth;
     };

希望这可能有所帮助。

答案 1 :(得分:-1)

在这里,这可能会帮助您...

public static Size GetImageSize(string fileName)
        {
            #if __IOS__
            UIImage image = UIImage.FromFile(fileName);
            return new Size((double)image.Size.Width, (double)image.Size.Height);
            #endif

            return Size.Zero;
        }