using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Xamarin.Forms; using Xamarin.Forms.Xaml; //using static Android.Graphics.ImageDecoder; namespace comal.timesheets { public delegate void SaveSelected(byte[] array); [XamlCompilation(XamlCompilationOptions.Compile)] public partial class ImageViewerEditor { public event DeleteSelected OnDeleteSelected; public event SaveSelected OnSaveSelected; public ImageViewerEditor(ImageSource source, bool candelete = false) { InitializeComponent (); NavigationPage.SetHasBackButton(this, false); 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; if (candelete) { deleteBtn.IsVisible = true; } if ((Device.Idiom == TargetIdiom.Phone) && (Device.RuntimePlatform == Device.Android)) { blankLbl.IsVisible = true; } } 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(); OnSaveSelected?.Invoke(array); args.Cancel = true; Navigation.PopAsync(); } private void DeleteBtn_Clicked(object sender, EventArgs e) { OnDeleteSelected?.Invoke(); Navigation.PopAsync(); } } }