示例#1
0
        public Image DrawRectangles(DrawRectangleRequest request)
        {
            using (WebClient client = new WebClient())
            {
                client.Headers.Add("Apikey", Apikey);

                string url = "https://api.cloudmersive.com/image/edit/draw/rectangle";

                //url = "http://localhost:64058/image/edit/draw/rectangle";

                string strInput = JsonConvert.SerializeObject(request);

                client.Headers.Add("Content-Type", "application/json");

                var response = client.UploadData(url,
                                                 "POST", System.Text.Encoding.ASCII.GetBytes(strInput));

                using (MemoryStream stream = new MemoryStream(/*Encoding.UTF8.GetBytes*/ (response)))
                {
                    Image img = Image.FromStream(stream);

                    return(img);
                }
            }
        }
        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;
        }