using System; using System.IO; using System.Threading.Tasks; using InABox.Mobile; using Xamarin.Forms; using Xamarin.Forms.Xaml; //using static Android.Graphics.ImageDecoder; namespace PRS.Mobile { public delegate void SaveSelected(byte[] array); [XamlCompilation(XamlCompilationOptions.Compile)] public partial class ImageViewerEditor { private Action _deleteaction; private readonly Action _saveaction; public ImageViewerEditor(ImageSource source, Action save, Action delete = null) { _deleteaction = delete; _saveaction = save; InitializeComponent (); _delete.IsVisible = delete != null; _save.IsVisible = save != null; imageEditor.Source = source; imageEditor.ImageSaving += ImageEditor_ImageSaving; imageEditor.ToolbarSettings.VisibleShapesItems = Syncfusion.SfImageEditor.XForms.ImageEditorShapes.Rectangle | Syncfusion.SfImageEditor.XForms.ImageEditorShapes.Circle | Syncfusion.SfImageEditor.XForms.ImageEditorShapes.Line | Syncfusion.SfImageEditor.XForms.ImageEditorShapes.Arrow; } private void ExitBtn_Clicked(object sender, EventArgs e) { Navigation.PopAsync(); } private void ImageEditor_ImageSaving(object sender, Syncfusion.SfImageEditor.XForms.ImageSavingEventArgs args) { var stream = args.Stream; MemoryStream memoryStream = new MemoryStream(); stream.CopyTo(memoryStream); byte[] array = memoryStream.ToArray(); _saveaction?.Invoke(array); args.Cancel = true; Navigation.PopAsync(); } private void DeleteBtn_Clicked(object sender, EventArgs e) { _deleteaction?.Invoke(); Navigation.PopAsync(); } private void SaveBtn_Clicked(object sender, MobileMenuButtonClickedEventArgs args) { imageEditor.Save(); } } }