Exemple #1
0
        public async void Share(string imageUrl)
        {
            var intent = new Intent(Intent.ActionSend);

            intent.SetType("image/png");

            // Get the URI of the image
            var imageUri    = new Uri(imageUrl);
            var imageSource = ImageSource.FromUri(imageUri);
            var handler     = new ImageLoaderSourceHandler();
            var context     = Xamarin.Forms.Forms.Context;
            var bitmap      = await handler.LoadImageAsync(imageSource, context);

            // Get the file name
            var filename = System.IO.Path.GetFileName(imageUrl);
            var path     =
                Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads +
                                                                         Java.IO.File.Separator + filename);

            using (var os = new System.IO.FileStream(path.AbsolutePath, System.IO.FileMode.Create))
            {
                bitmap.Compress(Bitmap.CompressFormat.Png, 100, os);
            }


            intent.PutExtra(Intent.ExtraStream, Android.Net.Uri.FromFile(path));

            var intentChooser = Intent.CreateChooser(intent, "Share via");

            context.StartActivity(intentChooser);
        }
        private async Task <Bitmap> GetImageFromImageSource(ImageSource imageSource, Context context)
        {
            IImageSourceHandler handler;

            if (imageSource is FileImageSource)
            {
                handler = new FileImageSourceHandler();
            }
            else if (imageSource is StreamImageSource)
            {
                handler = new StreamImagesourceHandler(); // sic
            }
            else if (imageSource is UriImageSource)
            {
                handler = new ImageLoaderSourceHandler(); // sic
            }
            else
            {
                throw new NotImplementedException();
            }

            var originalBitmap = await handler.LoadImageAsync(imageSource, context);

            // Blur it twice!
            var blurredBitmap = await Task.Run(() => CreateBlurredImage(CreateResizedImage(originalBitmap), 25));

            return(blurredBitmap);
        }
Exemple #3
0
        private async Task <Bitmap> GetImageFromImageSource(ImageSource imageSource, Context context)
        {
            try
            {
                IImageSourceHandler handler;

                if (imageSource is FileImageSource)
                {
                    handler = new FileImageSourceHandler();
                }
                else if (imageSource is StreamImageSource)
                {
                    handler = new StreamImagesourceHandler(); // sic
                }
                else if (imageSource is UriImageSource)
                {
                    handler = new ImageLoaderSourceHandler(); // sic
                }
                else
                {
                    throw new NotImplementedException();
                }

                return(await handler.LoadImageAsync(imageSource, context));
            }
            catch (Java.Lang.Exception e)
            {
                e.PrintStackTrace();
                return(null);
            }
        }
        public static async Task <Bitmap> GetBitmapAsync(ImageSource imageSource, Context context)
        {
            Bitmap result = null;

            IImageSourceHandler handler = null;

            if (imageSource is FileImageSource fileImageSource)
            {
                if (fileImageSource.File != null)
                {
                    handler = new FileImageSourceHandler();
                }
            }
            else if (imageSource is UriImageSource uriImageSource)
            {
                if (uriImageSource.Uri != null)
                {
                    handler = new ImageLoaderSourceHandler();
                }
            }
            else if (imageSource is StreamImageSource)
            {
                handler = new StreamImagesourceHandler();
            }

            if (handler != null)
            {
                result = await handler.LoadImageAsync(imageSource, context);
            }

            return(result);
        }
Exemple #5
0
        private UIImage GetImageFromImageSourceAsync(ImageSource imageSource)
        {
            IImageSourceHandler handler = null;

            if (imageSource is FileImageSource)
            {
                handler = new FileImageSourceHandler();
            }
            else if (imageSource is StreamImageSource)
            {
                handler = new StreamImagesourceHandler(); // sic
            }
            else if (imageSource is UriImageSource)
            {
                handler = new ImageLoaderSourceHandler(); // sic
            }
            else
            {
                throw new NotImplementedException();
            }

            var image = Task.Run <UIImage>(() => handler.LoadImageAsync(imageSource)).Result;

            return(image);
        }
Exemple #6
0
        /// <summary>
        /// Returns a bitmap from the image source
        /// </summary>
        /// <param name="imageSource">The ImageSource for the image</param>
        /// <param name="context">The context</param>
        /// <returns>A bitmap</returns>
        private Bitmap GetImageFromImageSourceAsync(ImageSource imageSource, Context context)
        {
            IImageSourceHandler handler;

            if (imageSource is FileImageSource)
            {
                handler = new FileImageSourceHandler();
            }
            else if (imageSource is StreamImageSource)
            {
                handler = new StreamImagesourceHandler();
            }
            else if (imageSource is UriImageSource)
            {
                handler = new ImageLoaderSourceHandler();
            }
            else
            {
                //Any other kind of source handler which has been added to android or are not supported will throw this exception
                throw new NotImplementedException();
            }

            var bitmap = Task.Run <Bitmap>(() => handler.LoadImageAsync(imageSource, context)).Result;

            return(bitmap);
        }
        private void setupImage(ImageSource source, UIImageView target)
        {
            IImageSourceHandler handler = null;

            if (source is UriImageSource)
            {
                handler = new ImageLoaderSourceHandler();
            }
            else if (source is FileImageSource)
            {
                handler = new FileImageSourceHandler();
            }
            else if (source is StreamImageSource)
            {
                handler = new StreamImagesourceHandler();
            }

            if (handler != null)
            {
                UIImage image = target.Image;
                if (image != null)
                {
                    using (var context = CIContext.Create())
                        using (var inputImage = CIImage.FromCGImage(image.CGImage))
                            using (var filter = new CIGaussianBlur()
                            {
                                Image = inputImage, Radius = 15
                            })
                                using (var resultImage = context.CreateCGImage(filter.OutputImage, inputImage.Extent))
                                    target.Image = new UIImage(resultImage);
                }
            }
        }
Exemple #8
0
        // Returns Task<UIImage>
        public async Task <object> ConvertToNative(ImageSource imageSource, object context, CancellationToken cancellationToken)
        {
            if (imageSource == null)
            {
                return(null);
            }

            IImageSourceHandler handler = null;

            if (imageSource.GetType() == typeof(FileImageSource))
            {
                handler = new FileImageSourceHandler();
            }
            else if (imageSource.GetType() == typeof(StreamImageSource))
            {
                handler = new StreamImageSourceHandler();       // lowercase 'source' to use original
            }
            else if (imageSource.GetType() == typeof(UriImageSource))
            {
                handler = new ImageLoaderSourceHandler();
            }

            if (handler == null)
            {
                return(null);
            }

            UIImage image = await handler.LoadImageAsync(imageSource, cancellationToken);

            return(image);
        }
Exemple #9
0
        /// <summary>
        /// Returns the proper <see cref="IImageSourceHandler"/> based on the type of <see cref="ImageSource"/> provided.
        /// </summary>
        /// <param name="source">The <see cref="ImageSource"/> to get the handler for.</param>
        /// <returns>The needed handler.</returns>
        private static IImageSourceHandler GetHandler(ImageSource source)
        {
            IImageSourceHandler returnValue = null;

            if (source is UriImageSource)
            {
                #if WINDOWS_UWP || WINDOWS_APP || WINDOWS_PHONE_APP
                returnValue = new UriImageSourceHandler();
                #else
                returnValue = new ImageLoaderSourceHandler();
                #endif
            }
            else if (source is FileImageSource)
            {
                returnValue = new FileImageSourceHandler();
            }
            else if (source is StreamImageSource)
            {
                #if WINDOWS_UWP || WINDOWS_APP || WINDOWS_PHONE_APP
                returnValue = new StreamImageSourceHandler();
                #else
                returnValue = new StreamImagesourceHandler();
                #endif
            }
            return(returnValue);
        }
        public async Task <Bitmap> GetBitmapFromImageSourceAsync(ImageSource source, Context context)
        {
            IImageSourceHandler handler;

            if (source is FileImageSource)
            {
                handler = new FileImageSourceHandler();
            }
            else if (source is StreamImageSource)
            {
                handler = new StreamImagesourceHandler(); // sic
            }
            else if (source is UriImageSource)
            {
                handler = new ImageLoaderSourceHandler(); // sic
            }
            else
            {
                throw new NotImplementedException();
            }



            var returnValue = (Bitmap)null;


            returnValue = await handler.LoadImageAsync(source, context);

            return(returnValue);
        }
        async public static void Share(ImageSource imageSource)
        {
            try
            {
                var handler = new ImageLoaderSourceHandler();
                var uiImage = await handler.LoadImageAsync(imageSource);

                var item               = NSObject.FromObject(uiImage);
                var item1              = NSObject.FromObject("Fantastic Bike from Bikspot.");
                var activityItems      = new[] { item, item1 };
                var activityController = new UIActivityViewController(activityItems, null);

                var topController = UIApplication.SharedApplication.KeyWindow.RootViewController;

                while (topController.PresentedViewController != null)
                {
                    topController = topController.PresentedViewController;
                }


                if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad)
                {
                    activityController.PopoverPresentationController.SourceView = topController.View;
                    activityController.PopoverPresentationController.SourceRect = new CoreGraphics.CGRect((topController.View.Bounds.Width / 2), (topController.View.Bounds.Height / 4), 0, 0);
                }


                topController.PresentViewController(activityController, true, () => { });
                //topController.PopoverPresentationController(activityController, true, () => { });
            }
            catch (Exception ex)
            {
            }
        }
Exemple #12
0
        // Returns Task<UIImage>
        public async Task <object> ConvertToNative(ImageSource imageSource, object context, CancellationToken cancellationToken)
        {
            if (imageSource == null)
            {
                return(null);
            }

            IImageSourceHandler handler = null;

            if (imageSource.GetType() == typeof(FileImageSource))
            {
                handler = new FileImageSourceHandler();
            }
            else if (imageSource.GetType() == typeof(StreamImageSource))
            {
                handler = new StreamImagesourceHandler();
            }
            else if (imageSource.GetType() == typeof(UriImageSource))
            {
                handler = new ImageLoaderSourceHandler();
            }

            if (handler == null)
            {
                return(null);
            }

            // TODO: The context field is null at this pint, but the Bitmap still seems to be created.

            Bitmap bitmap = await handler.LoadImageAsync(imageSource, context as Context, cancellationToken);

            return(bitmap);
        }
Exemple #13
0
        private async Task <Bitmap> GetImageFromImageSource(ImageSource imageSource, Context context)
        {
            IImageSourceHandler handler;

            if (imageSource is FileImageSource)
            {
                handler = new FileImageSourceHandler();
            }
            else if (imageSource is StreamImageSource)
            {
                handler = new StreamImagesourceHandler();
            }
            else if (imageSource is UriImageSource)
            {
                handler = new ImageLoaderSourceHandler();
            }
            else
            {
                throw new NotImplementedException();
            }

            var originalBitmap = await handler.LoadImageAsync(imageSource, context);

            return(originalBitmap);
        }
Exemple #14
0
        public async void Share(string subject, string message, ImageSource image)
        {
            //await CheckAppPermissions();
            try
            {
                var intent = new Intent(Intent.ActionSend);
                //intent.PutExtra(Intent.ExtraSubject, subject);
                intent.PutExtra(Intent.ExtraText, message);
                intent.SetType("image/png");

                var handler = new ImageLoaderSourceHandler();
                var bitmap  = await handler.LoadImageAsync(image, this);

                /*
                 * var path = Environment.GetExternalStoragePublicDirectory(Environment.DirectoryDownloads + Java.IO.File.Separator + "logo.png");
                 *
                 * using (var os = new System.IO.FileStream(path.AbsolutePath, System.IO.FileMode.Create))
                 * {
                 *  bitmap.Compress(Bitmap.CompressFormat.Png, 100, os);
                 * }
                 * intent.PutExtra(Intent.ExtraStream, Android.Net.Uri.FromFile(path));
                 * Forms.Context.StartActivity(Intent.CreateChooser(intent, "Share Image"));
                 *
                 */


                /*
                 * string documentPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData);
                 * string folderName = "CurrentApp";
                 * var folderPath = System.IO.Path.Combine(documentPath, folderName);
                 * System.IO.Directory.CreateDirectory(folderPath);
                 * string fName = "Download.pdf";
                 * var localPath = System.IO.Path.Combine(folderPath, fName);
                 * using (var os = new System.IO.FileStream(localPath, System.IO.FileMode.Create))
                 * {
                 *  bitmap.Compress(Bitmap.CompressFormat.Png, 100, os);
                 * }
                 * intent.PutExtra(Intent.ExtraStream, Android.Net.Uri.FromFile((Java.IO.File)localPath));
                 * Forms.Context.StartActivity(Intent.CreateChooser(intent, "Share Image"));
                 */


                //var path = Environment.GetExternalStoragePublicDirectory(Environment.DirectoryDownloads + Java.IO.File.Separator + "logo.png");

                var path = Environment.GetExternalStoragePublicDirectory(Environment.DirectoryDownloads + Java.IO.File.Separator + "logo.png" + System.DateTime.Now.Ticks.ToString());

                using (var os = new System.IO.FileStream(path.AbsolutePath, System.IO.FileMode.Create))
                {
                    bitmap.Compress(Bitmap.CompressFormat.Png, 100, os);
                }
                intent.PutExtra(Intent.ExtraStream, Android.Net.Uri.FromFile(path));
                Forms.Context.StartActivity(Intent.CreateChooser(intent, "Share Image"));
            }
            catch (System.Exception ex)
            {
                PrintLog.PublishLog(ex);
            }
        }
 public static IImageSourceHandler GetHandler(this ImageSource source)
 {
     IImageSourceHandler returnValue = null;
     if (source is UriImageSource)
         returnValue = new ImageLoaderSourceHandler();
     else if (source is FileImageSource)
         returnValue = new FileImageSourceHandler();
     else if (source is StreamImageSource)
         returnValue = new StreamImagesourceHandler();
     return returnValue;
 }
 /// <summary>
 /// Returns the proper <see cref="T:Xamarin.Forms.Platform.iOS.IImageSourceHandler"/> 
 /// based on the type of <see cref="T:Xamarin.Forms.ImageSource"/> provided.
 /// </summary>
 /// <param name="source">The <see cref="T:Xamarin.Forms.ImageSource"/> to get the handler for.</param>
 /// <returns>
 /// The needed handler.
 /// </returns>
 private static IImageSourceHandler GetHandler(ImageSource source)
 {
     var imageSourceHandler = (IImageSourceHandler)null;
     if(source is UriImageSource)
         imageSourceHandler = new ImageLoaderSourceHandler();
     else if(source is FileImageSource)
         imageSourceHandler = new FileImageSourceHandler();
     else if(source is StreamImageSource)
         imageSourceHandler = new StreamImagesourceHandler();
     return imageSourceHandler;
 }
 /// <summary>
 /// Returns the proper <see cref="IImageSourceHandler"/> based on the type of <see cref="ImageSource"/> provided.
 /// </summary>
 /// <param name="source">The <see cref="ImageSource"/> to get the handler for.</param>
 /// <returns>The needed handler.</returns>
 private static IImageSourceHandler GetHandler(ImageSource source)
 {
     IImageSourceHandler returnValue = null;
     if (source is UriImageSource) {
         returnValue = new ImageLoaderSourceHandler ();
     } else if (source is FileImageSource) {
         returnValue = new FileImageSourceHandler ();
     } else if (source is StreamImageSource) {
         returnValue = new StreamImagesourceHandler ();
     }
     return returnValue;
 }
Exemple #18
0
        private async Task SetImageAsync(ImageSource source, int widthRequest, int heightRequest, UIButton targetButton, UIControlState state = UIControlState.Normal)
        {
            IImageSourceHandler handler = null;

            if (source is UriImageSource)
            {
                handler = new ImageLoaderSourceHandler();
            }
            else if (source is FileImageSource)
            {
                handler = new FileImageSourceHandler();
            }
            else if (source is StreamImageSource)
            {
                handler = new StreamImagesourceHandler();
            }

            if (handler != null)
            {
                using (UIImage image = await handler.LoadImageAsync(source, default(System.Threading.CancellationToken), (float)UIScreen.MainScreen.Scale))
                {
                    if (image != null)
                    {
                        UIImage scaled = image;
                        if ((heightRequest > 0) && (widthRequest > 0) && ((image.Size.Height != heightRequest) || (image.Size.Width != widthRequest)))
                        {
                            scaled = scaled.Scale(new CGSize(widthRequest, heightRequest), UIScreen.MainScreen.Scale);
                        }

                        if (ImageButton.SupportCheckedState && !ImageButton.Checked)
                        {
                            UIGraphics.BeginImageContextWithOptions(scaled.Size, false, scaled.CurrentScale);
                            var context = UIGraphics.GetCurrentContext();
                            var area    = new CGRect(0, 0, scaled.Size.Width, scaled.Size.Height);
                            context.ScaleCTM(1.0f, -1.0f);
                            context.TranslateCTM(0, -scaled.Size.Height);
                            context.SetBlendMode(CGBlendMode.Multiply);
                            context.SetAlpha((nfloat)ImageButton.UncheckedAlpha);
                            context.DrawImage(area, scaled.CGImage);

                            var newImage = UIGraphics.GetImageFromCurrentImageContext();
                            targetButton.SetImage(newImage.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), state);
                        }
                        else
                        {
                            targetButton.SetImage(scaled.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), state);
                        }
                    }
                }
            }
        }
Exemple #19
0
        public async void Share(string subject, string message, string imagebase64)
        {
            try
            {
                var intent = new Intent(Intent.ActionSend);
                //intent.PutExtra(Intent.ExtraSubject, subject);
                intent.PutExtra(Intent.ExtraText, message);
                intent.SetType("image/*");

                var handler = new ImageLoaderSourceHandler();

                //var bitmap = await handler.LoadImageAsync(image, this);

                Bitmap bmpReturn  = null;
                byte[] byteBuffer = Convert.FromBase64String(imagebase64);

                //bmpReturn = (Bitmap)Bitmap.FromArray(byteBuffer);
                Bitmap bitmapq = BitmapFactory.DecodeByteArray(byteBuffer, 0, byteBuffer.Length);


                byteBuffer = null;


                var bitmap = bitmapq;
                var path   = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads
                                                                                      + Java.IO.File.Separator + "logo.jpg");

                using (var os = new System.IO.FileStream(path.AbsolutePath, System.IO.FileMode.Create))
                {
                    bitmap.Compress(Bitmap.CompressFormat.Png, 100, os);
                }

                intent.PutExtra(Intent.ExtraStream, Android.Net.Uri.FromFile(path));
                //Forms.Context.StartActivity(Intent.CreateChooser(intent, "Share Image"));


                var chooserIntent = Intent.CreateChooser(intent, "Share Image");
                chooserIntent.SetFlags(ActivityFlags.ClearTop);
                chooserIntent.SetFlags(ActivityFlags.NewTask);
                _context.StartActivity(chooserIntent);

                //return Task.FromResult(true);
            }
            catch (System.Exception ex)
            {
                //  throw;
            }
        }
Exemple #20
0
        public async void Share(ImageSource imageSource)
        {
            try
            {
                var intent = new Intent(Intent.ActionSend);

                intent.SetType("image/jpeg");

                IImageSourceHandler handler;

                if (imageSource is FileImageSource)
                {
                    handler = new FileImageSourceHandler();
                }
                else if (imageSource is StreamImageSource)
                {
                    handler = new StreamImagesourceHandler(); // sic
                }
                else if (imageSource is UriImageSource)
                {
                    handler = new ImageLoaderSourceHandler(); // sic
                }
                else
                {
                    throw new NotImplementedException();
                }

                var bitmap = await handler.LoadImageAsync(imageSource, Android.App.Application.Context);

                Java.IO.File path = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures
                                                                                             + Java.IO.File.Separator + "MyImage.jpg");

                using (System.IO.FileStream os = new System.IO.FileStream(path.AbsolutePath, System.IO.FileMode.Create))
                {
                    bitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, os);
                }

                intent.AddFlags(ActivityFlags.GrantReadUriPermission);
                intent.AddFlags(ActivityFlags.GrantWriteUriPermission);
                intent.PutExtra(Intent.ExtraStream, FileProvider.GetUriForFile(Android.App.Application.Context, "com.orem.fcCustomer.fileprovider", path));

                Android.App.Application.Context.StartActivity(Intent.CreateChooser(intent, "Share Image"));
            }
            catch (Exception ex)
            {
            }
        }
Exemple #21
0
        private async void SetSource(System.Windows.Controls.Image image)
        {
            IImageSourceHandler handler;
            var source = (this.Element as BlurImageView).Source;

            if (source == null)
            {
                return;
            }

            if (source is FileImageSource)
            {
                handler = new FileImageSourceHandler();
            }
            else if (source is StreamImageSource)
            {
                handler = new StreamImagesourceHandler(); // sic
            }
            else if (source is UriImageSource)
            {
                handler = new ImageLoaderSourceHandler(); // sic
            }
            else
            {
                throw new NotImplementedException();
            }

            System.Windows.Media.ImageSource imagesource;
            try
            {
                imagesource = await handler.LoadImageAsync(source, new CancellationToken());
            }
            catch (TaskCanceledException)
            {
                imagesource = (System.Windows.Media.ImageSource)null;
            }

            // Blur
            if (imagesource is BitmapImage)
            {
                var bmpImage = imagesource as BitmapImage;
                var wr       = new WriteableBitmap(bmpImage);
                BoxBlurHorizontal(wr, 40);
                BoxBlurVertical(wr, 40);
                image.Source = wr;
            }
        }
Exemple #22
0
		internal static IImageSourceHandler GetHandler (this ImageSource source)
		{
			IImageSourceHandler returnValue = null;
			if (source is UriImageSource)
			{
				returnValue = new ImageLoaderSourceHandler();
			}
			else if (source is FileImageSource)
			{
				returnValue = new FileImageSourceHandler();
			}
			else if (source is StreamImageSource)
			{
				returnValue = new StreamImagesourceHandler();
			}
			return returnValue;
		}
        async void Share (ImageSource imageSource)
        {
            var handler = new ImageLoaderSourceHandler();
            var uiImage = await handler.LoadImageAsync(imageSource);

            var item = NSObject.FromObject (uiImage);
            var activityItems = new[] { item }; 
            var activityController = new UIActivityViewController (activityItems, null);

            var topController = UIApplication.SharedApplication.KeyWindow.RootViewController;

            while (topController.PresentedViewController != null) {
                topController = topController.PresentedViewController;
            }

            topController.PresentViewController (activityController, true, () => {});
        }
Exemple #24
0
        private async Task <Bitmap> GetImageFromImageSource(ImageSource imageSource, Context context)
        {
            try
            {
                IImageSourceHandler handler;

                if (imageSource is FileImageSource)
                {
                    handler = new FileImageSourceHandler();
                }
                else if (imageSource is StreamImageSource)
                {
                    handler = new StreamImagesourceHandler();
                }
                else if (imageSource is UriImageSource)
                {
                    handler = new ImageLoaderSourceHandler();
                }
                else
                {
                    return(null);
                }

                var originalBitmap = await handler.LoadImageAsync(imageSource, context);

                if (originalBitmap != null)
                {
                    var b             = CreateResizedImage(originalBitmap);
                    var blurredBitmap = await Task.Run(() => CreateBlurredImage(b, 25));

                    originalBitmap.Dispose();
                    b.Dispose();
                    return(blurredBitmap);
                }
                else
                {
                    return(null);
                }
            }

            catch
            {
                return(null);
            }
        }
Exemple #25
0
        public void ShareImage(string subject, string filename, byte[] data)
        {
            var handler = new ImageLoaderSourceHandler();
            var uiImage = CopyTo(data);
            var img     = FromObject(uiImage);
            var mess    = FromObject(subject);

            try
            {
                var activityItems = new[] { img };
                ShareAction(activityItems);
            }
            catch (Exception)
            {
                var activityItems = new[] { img };
                ShareAction(activityItems);
            }
        }
        private IImageSourceHandler GetHandler(Xamarin.Forms.ImageSource imageSource)
        {
            IImageSourceHandler returnValue = null;

            if (imageSource is Xamarin.Forms.UriImageSource)
            {
                returnValue = new ImageLoaderSourceHandler();
            }
            else if (imageSource is Xamarin.Forms.FileImageSource)
            {
                returnValue = new FileImageSourceHandler();
            }
            else if (imageSource is Xamarin.Forms.StreamImageSource)
            {
                returnValue = new StreamImagesourceHandler();
            }
            return(returnValue);
        }
Exemple #27
0
        public static Task <UIImage> ToUIImage(this ImageSource imageSource)
        {
            IImageSourceHandler handler = null;

            if (imageSource is UriImageSource)
            {
                handler = new ImageLoaderSourceHandler();
            }
            else if (imageSource is FileImageSource)
            {
                handler = new FileImageSourceHandler();
            }
            else if (imageSource is StreamImageSource)
            {
                handler = new StreamImagesourceHandler();
            }
            return(handler.LoadImageAsync(imageSource));
        }
Exemple #28
0
        /// <summary>
        /// Helper method to initialize the respective <see cref="IImageSourceHandler"/> to native <see cref="ImageView"/> using <see cref="SfImage.Source"/> property.
        /// </summary>
        /// <param name="source">Represents the <see cref="ImageSource"/>.</param>
        /// <returns>Returns the <see cref="IImageSourceHandler"/> based on <see cref="ImageSource"/>.</returns>
        private IImageSourceHandler GetHandler(ImageSource source)
        {
            IImageSourceHandler sourcehandler = null;

            if (source is UriImageSource)
            {
                sourcehandler = new ImageLoaderSourceHandler();
            }
            else if (source is FileImageSource)
            {
                sourcehandler = new FileImageSourceHandler();
            }
            else if (source is StreamImageSource)
            {
                sourcehandler = new StreamImagesourceHandler();
            }
            return(sourcehandler);
        }
Exemple #29
0
        public async void Share(string subject, string message, ImageSource image)
        {
            var handler = new ImageLoaderSourceHandler();
            var uiImage = await handler.LoadImageAsync(image);

            var img                = NSObject.FromObject(uiImage);
            var mess               = NSObject.FromObject(message);
            var activityItems      = new[] { mess, img };
            var activityController = new UIActivityViewController(activityItems, null);
            var topController      = UIApplication.SharedApplication.KeyWindow.RootViewController;

            while (topController.PresentedViewController != null)
            {
                topController = topController.PresentedViewController;
            }

            topController.PresentViewController(activityController, true, () => { });
        }
Exemple #30
0
        public async Task Share(string subject, string message, byte[] image)
        {
            var handler            = new ImageLoaderSourceHandler();
            var data               = NSData.FromArray(image);
            var uiimage            = UIImage.LoadFromData(data);
            var img                = NSObject.FromObject(uiimage);
            var mess               = NSObject.FromObject(message);
            var activityItems      = new[] { mess, img };
            var activityController = new UIActivityViewController(activityItems, null);
            var topController      = UIApplication.SharedApplication.KeyWindow.RootViewController;

            while (topController.PresentedViewController != null)
            {
                topController = topController.PresentedViewController;
            }

            topController.PresentViewController(activityController, true, () => { });
        }
        /// <summary>
        /// Returns the proper <see cref="IImageSourceHandler"/> based on the type of <see cref="ImageSource"/> provided.
        /// </summary>
        /// <param name="source">The <see cref="ImageSource"/> to get the handler for.</param>
        /// <returns>The needed handler.</returns>
        private static IImageSourceHandler GetHandler(ImageSource source)
        {
            IImageSourceHandler returnValue = null;

            if (source is UriImageSource)
            {
                returnValue = new ImageLoaderSourceHandler();
            }
            else if (source is FileImageSource)
            {
                returnValue = new FileImageSourceHandler();
            }
            else if (source is StreamImageSource)
            {
                returnValue = new StreamImagesourceHandler();
            }
            return(returnValue);
        }
Exemple #32
0
        private static Task <UIImage> GetImageFromImageSourceAsync(ImageSource imageSource)
        {
            IImageSourceHandler handler = null;

            if (imageSource is FileImageSource)
            {
                handler = new FileImageSourceHandler();
            }
            else if (imageSource is StreamImageSource)
            {
                handler = new StreamImagesourceHandler();
            }
            else if (imageSource is UriImageSource)
            {
                handler = new ImageLoaderSourceHandler();
            }
            return(handler?.LoadImageAsync(imageSource));
        }
        private Task <Bitmap> GetImageFromImageSourceAsync(ImageSource imageSource)
        {
            IImageSourceHandler handler = null;

            if (imageSource is FileImageSource)
            {
                handler = new FileImageSourceHandler();
            }
            else if (imageSource is StreamImageSource)
            {
                handler = new StreamImagesourceHandler();
            }
            else if (imageSource is UriImageSource)
            {
                handler = new ImageLoaderSourceHandler();
            }

            return(handler?.LoadImageAsync(imageSource, _context));
        }
		public static IImageSourceHandler GetHandler (this ImageSource source)
		{
			//Image source handler to return
			IImageSourceHandler returnValue = null;
			//check the specific source type and return the correct image source handler
			if (source is UriImageSource)
			{
				returnValue = new ImageLoaderSourceHandler();
			}
			else if (source is FileImageSource)
			{
				returnValue = new FileImageSourceHandler();
			}
			else if (source is StreamImageSource)
			{
				returnValue = new StreamImagesourceHandler();
			}
			return returnValue;
		}