Exemplo n.º 1
0
        public async Task <FileStream> CompressImage(Stream imageData, int Quality)
        {
            await Task.Yield();

            string path = System.IO.Path.Combine(Kit.Tools.Instance.TemporalPath, $"{Guid.NewGuid():N}.jpeg");

            using (NSData nsData = NSData.FromStream(imageData))
            {
                using (UIImage uiimage = UIImage.LoadFromData(nsData))
                {
                    using (Stream compressed = uiimage.AsJpegStream(Quality))
                    {
                        FileStream stream = new FileStream(path, FileMode.OpenOrCreate);
                        await compressed.CopyToAsync(stream);

                        return(stream);
                    }
                }
            }
        }
        private async Task <OperationResult <MediaModel> > UploadPhoto()
        {
            Stream stream = null;

            try
            {
                stream = ImageAsset.AsJpegStream();
                var request = new UploadMediaModel(BasePresenter.User.UserInfo, stream, ImageExtension);
                return(await _presenter.TryUploadMedia(request));
            }
            catch (Exception ex)
            {
                AppSettings.Reporter.SendCrash(ex);
                return(new OperationResult <MediaModel>(new ApplicationError(Localization.Errors.PhotoProcessingError)));
            }
            finally
            {
                stream?.Flush();
                stream?.Dispose();
            }
        }