user11409100
user11409100

Reputation:

How to get the width of a photo taken in Xamarin

I have the following code to take a picture in Xamarin:

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

However, after I've taken the picture, I want to retrieve the width of the image. I thought there might be a:

photo.Width

But there is not. There is a PhotoSize property on the StoreCameraMediaOptions, but that appears to be a way to dictate the size, rather than retrieve it.

Is there a way to do this in Xamarin, or an existing plug-in that will accomplish it?

Upvotes: 1

Views: 1732

Answers (2)

heathkev
heathkev

Reputation: 153

Using FFImageLoading the ImageInformation class gives you the original height & width, you could assign a mediafile to an image then get the width of that image that rendered the mediafile

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

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

Hope this one might helps.

Upvotes: 3

Ahmad Zubair
Ahmad Zubair

Reputation: 1

Here you go this might help you...

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;
        }

Upvotes: -1

Related Questions