private void button1_Click(object sender, EventArgs e) { Analyze.Text = "Аналізую"; Analyze.Enabled = false; LoadPhoto.Enabled = false; try { //перерисовуем при повторном запуске InfoLable.Text = ""; long startTime = DateTime.Now.Ticks; FaceRosponse facesInfo; if (isAsync.Checked) { facesInfo = Recognizer.AnalyzePhotoAsync(photo); } else { facesInfo = Recognizer.AnalyzePhoto(photo); } long endTimeTime = DateTime.Now.Ticks; if (facesInfo == null) { MessageBox.Show("Не вдалось ропізнати лиця"); return; } InfoLable.Text = string.Format("Час роботи алгоритму : {0}(ms)", (endTimeTime - startTime) / TimeSpan.TicksPerMillisecond); System.Drawing.Image imageToDraw = photo.ToBitmap(); Graphics graphycs = Graphics.FromImage(imageToDraw); for (int i = 0; i < facesInfo.personsData.Count; i++) { using (Pen pen = new Pen(Color.White)) { Rectangle faceRect = facesInfo.personsFaces[i]; graphycs.DrawRectangle(pen, faceRect); using (Font font = new Font("Arial", 10)) { RecognizerResponse faceInfo = facesInfo.personsData[i]; string toPrint = string.Format("Стать : {0}-{1:0}%\nВік : ({2})-{3:0}%", (faceInfo.gender == "male" ? "Чоловік" : "Жінка"), faceInfo.genderProb, faceInfo.ageDiapason, faceInfo.ageProb ); graphycs.FillRectangle( new SolidBrush(Color.FromArgb(200, 255, 255, 255)), new RectangleF( //этот ужас рисует фон для текста что б читать было удобно new PointF(faceRect.X, faceRect.Y - 40), graphycs.MeasureString(toPrint, font))); graphycs.DrawString(toPrint, font, Brushes.Red, new PointF(faceRect.X, faceRect.Y - 40)); } } } ImageBox.Image = imageToDraw; graphycs.Dispose(); } catch (Exception ex) { MessageBox.Show("Невідома помилка\n" + ex.Message); } Analyze.Text = "Аналізувати"; Analyze.Enabled = true; LoadPhoto.Enabled = true; }