Ejemplo n.º 1
0
        private void FinishTakePhoto()
        {
            try
            {
                WriteToFile();

                Task.Delay(100).ContinueWith((arg) => {
                    try
                    {
                        var item = new SupportImageXF()
                        {
                            OriginalPath = CurrentPhotoPath
                        };
                        var bitmap = item.OriginalPath.GetOriginalBitmapFromPath(new SyncPhotoOptions()
                        {
                            Width  = 300,
                            Height = 300
                        });
                        using (var streamBitmap = new MemoryStream())
                        {
                            bitmap.Compress(Bitmap.CompressFormat.Jpeg, 80, streamBitmap);
                            item.ImageSourceXF = ImageSource.FromStream(() => new MemoryStream(streamBitmap.ToArray().ToArray()));
                            bitmap.Recycle();
                        }

                        var result = new List <SupportImageXF>()
                        {
                            item
                        };
                        MessagingCenter.Send <CamActivity, List <SupportImageXF> >(this, Utils.SubscribeImageFromCamera, result);
                    }
                    catch (System.Exception ex)
                    {
                        DebugMessage("ErrorMessage: \n" + ex.Message + "\n" + "Stacktrace: \n " + ex.StackTrace);
                    }
                });

                Finish();
            }
            catch (System.Exception ex)
            {
                ShowToastMessage("Failed to take photo");
                DebugMessage("ErrorMessage: \n" + ex.Message + "\n" + "Stacktrace: \n " + ex.StackTrace);
            }
        }
Ejemplo n.º 2
0
        private async void OnOpenCameraCommand()
        {
            var xx = DependencyService.Get <ISupportMedia>();

            if (xx != null)
            {
                var option = new SyncPhotoOptions();
                var result = await xx.IF_OpenCamera(option);

                ImageItems.Add(result);
                var result2 = await xx.IF_WriteStreamToFile(result, option);

                var xxyy = new SupportImageXF()
                {
                    ImageSourceXF = ImageSource.FromFile(result2.ProcessFilePath)
                };
                ImageItems.Add(xxyy);
            }
        }
Ejemplo n.º 3
0
        protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);
            switch (requestCode)
            {
            case REQUEST_CAMERA_CAPTURE:
                if (resultCode == Result.Ok)
                {
                    Console.WriteLine(mCurrentPhotoPath);

                    Task.Delay(100).ContinueWith((arg) => {
                        var item = new SupportImageXF()
                        {
                            OriginalPath = mCurrentPhotoPath
                        };
                        var bitmap = item.OriginalPath.GetOriginalBitmapFromPath(new SyncPhotoOptions()
                        {
                            Width  = 300,
                            Height = 300
                        });
                        using (var streamBitmap = new MemoryStream())
                        {
                            bitmap.Compress(Bitmap.CompressFormat.Jpeg, 80, streamBitmap);
                            item.ImageSourceXF = ImageSource.FromStream(() => new MemoryStream(streamBitmap.ToArray().ToArray()));
                            bitmap.Recycle();
                        }

                        var result = new List <SupportImageXF>()
                        {
                            item
                        };
                        MessagingCenter.Send <GalleryPickerActivity, List <SupportImageXF> >(this, Utils.SubscribeImageFromGallery, result);
                    });

                    Finish();
                }
                break;

            default:
                break;
            }
        }
Ejemplo n.º 4
0
 public PhotoSetNative()
 {
     galleryImageXF         = new SupportImageXF();
     galleryImageXF.Checked = false;
 }
Ejemplo n.º 5
0
        public async Task <SupportImageXF> IF_SyncPhotoFromCloud(ISupportMediaResultListener supportMediaResultListener, SupportImageXF imageSet, SyncPhotoOptions options)
        {
            try
            {
                bool FinishSync = false;

                Debug.WriteLine(imageSet.OriginalPath);

                var sortOptions = new PHFetchOptions();
                sortOptions.SortDescriptors = new NSSortDescriptor[] { new NSSortDescriptor("creationDate", false) };

                var FeechPhotoByIdentifiers = PHAsset.FetchAssetsUsingLocalIdentifiers(
                    new string[] { imageSet.OriginalPath },
                    sortOptions).Cast <PHAsset>().FirstOrDefault();

                if (FeechPhotoByIdentifiers != null)
                {
                    var requestOptions = new PHImageRequestOptions()
                    {
                        NetworkAccessAllowed = true,
                        DeliveryMode         = PHImageRequestOptionsDeliveryMode.HighQualityFormat,
                        ResizeMode           = PHImageRequestOptionsResizeMode.None,
                    };

                    var requestSize = new CoreGraphics.CGSize(options.Width, options.Height);
                    requestSize = PHImageManager.MaximumSize;

                    PHImageManager.DefaultManager.RequestImageForAsset(FeechPhotoByIdentifiers, requestSize, PHImageContentMode.AspectFit, requestOptions, (result, info) => {
                        if (result != null)
                        {
                            var newImage          = result.ResizeImage(options);
                            imageSet.ImageRawData = newImage.AsJPEG(options.Quality).ToArray();
                        }
                        FinishSync = true;
                    });

                    do
                    {
                        if (FinishSync)
                        {
                            return(imageSet);
                        }
                        await Task.Delay(1000);
                    } while (!FinishSync);
                }

                return(imageSet);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.StackTrace);
                return(imageSet);
            }
        }