private void btnDetectObjects_Click(object sender, RoutedEventArgs e)
        {
            var dlg = new OpenFileDialog();

            if (!dlg.ShowDialog().Value)
            {
                return;
            }

            string path = dlg.FileName;

            // Process image

            var imageSourceConverter = new ImageSourceConverter();
            ImageRecognitionAndProcessingClient client = new ImageRecognitionAndProcessingClient();

            var objects = client.DetectObjects(File.ReadAllBytes(path));

            System.Drawing.Image outcome = System.Drawing.Image.FromFile(dlg.FileName);

            foreach (var obj in objects.Objects)
            {
                DrawRectangleRequest req = new DrawRectangleRequest();

                using (MemoryStream stream = new MemoryStream())
                {
                    outcome.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
                    req.BaseImageBytes = stream.ToArray();

                    DrawRectangleInstance instance = new DrawRectangleInstance();

                    instance.BorderColor = "red";
                    instance.BorderWidth = 5;
                    instance.X           = obj.X;
                    instance.Y           = obj.Y;
                    instance.Width       = obj.Width;
                    instance.Height      = obj.Height;

                    req.RectanglesToDraw = new DrawRectangleInstance[] { instance };

                    outcome = client.DrawRectangles(req);
                }
            }


            byte[]      tempBitmap = BitmapToByte((System.Drawing.Bitmap)outcome);
            ImageSource image      = (ImageSource)imageSourceConverter.ConvertFrom(tempBitmap);


            imgOutput.Source = image;
        }
        private void btnFindFace_Click(object sender, RoutedEventArgs e)
        {
            var dlg = new OpenFileDialog();

            if (!dlg.ShowDialog().Value)
            {
                return;
            }

            string path = dlg.FileName;

            // Process image

            ImageRecognitionAndProcessingClient client = new ImageRecognitionAndProcessingClient();

            System.Drawing.Image outcome = client.CropToFirstFace(path);

            var response = client.LocateFaces(File.ReadAllBytes(path));

            txtOutput.Text = JsonConvert.SerializeObject(response);


            var imageSourceConverter = new ImageSourceConverter();

            byte[]      tempBitmap = BitmapToByte((System.Drawing.Bitmap)outcome);
            ImageSource image      = (ImageSource)imageSourceConverter.ConvertFrom(tempBitmap);


            imgOutput.Source = image;

            // Log success

            CloudmersiveAuditClient client2 = new CloudmersiveAuditClient();

            AuditLogWriteRequest req = new AuditLogWriteRequest();

            req.AuditLogMessage     = "Successfully processed image.";
            req.AuditLogReferenceIP = GetLocalIPAddress();
            req.AuditLogMeta        = dlg.FileName;

            CloudmersiveValidationApiClient valid = new CloudmersiveValidationApiClient();
            var geo = valid.GeolocateIP(req.AuditLogReferenceIP);

            req.AuditLogReferenceLocation = JsonConvert.SerializeObject(geo);

            client2.WriteLogMessageFull(req);
        }
        private void btnRecognizeImage_Click(object sender, RoutedEventArgs e)
        {
            var dlg = new OpenFileDialog();

            if (!dlg.ShowDialog().Value)
            {
                return;
            }

            string path = dlg.FileName;

            ImageRecognitionAndProcessingClient client = new ImageRecognitionAndProcessingClient();

            var outcome = client.RecognizeImageToDescription(path);

            txtOutput.Text = outcome.BestOutcome.Description;
        }
        private void btnNsfw_Click(object sender, RoutedEventArgs e)
        {
            var dlg = new OpenFileDialog();

            if (!dlg.ShowDialog().Value)
            {
                return;
            }

            string path = dlg.FileName;

            ImageRecognitionAndProcessingClient client = new ImageRecognitionAndProcessingClient();

            var outcome = client.NsfwClassification(path);

            txtOutput.Text = JsonConvert.SerializeObject(outcome);
        }