private string Compress(string path) { var photoUri = Android.Net.Uri.Parse(path); FileDescriptor fileDescriptor = null; Bitmap btmp = null; System.IO.FileStream stream = null; try { fileDescriptor = ContentResolver.OpenFileDescriptor(photoUri, "r").FileDescriptor; btmp = BitmapUtils.DecodeSampledBitmapFromDescriptor(fileDescriptor, 1600, 1600); btmp = BitmapUtils.RotateImageIfRequired(btmp, fileDescriptor, path); var directoryPictures = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures); var directory = new Java.IO.File(directoryPictures, Constants.Steepshot); if (!directory.Exists()) { directory.Mkdirs(); } path = $"{directory}/{Guid.NewGuid()}.jpeg"; stream = new System.IO.FileStream(path, System.IO.FileMode.Create); btmp.Compress(Bitmap.CompressFormat.Jpeg, 100, stream); return(path); } catch (Exception ex) { _postButton.Enabled = false; this.ShowAlert(Localization.Errors.UnknownCriticalError); AppSettings.Reporter.SendCrash(ex); } finally { fileDescriptor?.Dispose(); btmp?.Recycle(); btmp?.Dispose(); stream?.Dispose(); } return(path); }