Занимаясь разработкой кодированных тестов, я столкнулся с необходимостью снятия скриншота с рабочего стола или с определенного окна, а затем с сохранением результатов в файл.
Почему возникла такая необходимость?
Для сравнения графических изображений с образцом я пробовал использовать библиотеку Perl «ImageMagic», которая успешно сравнивает изображения с заданием некоторой величины погрешности. Но в некоторых случаях она оказалась неэффективна.
Для того, чтобы снять скриншот с экрана, я нашел функцию CaptureImage();
Указанным образом я получил снимок с экрана:
Image img = UITestControl.Desktop.CaptureImage();
А таким образом я снял скриншот с контрола (UITestControl control):
Image img = control.CaptureImage();
Далее полученный скриншот необходимо сохранить в файл, предварительно сделав на нем комментарий.
using (Graphics g = Graphics.FromImage(img))
{
g.DrawString(strComment, new Font("Arial", 20), new SolidBrush(Color.Red), new PointF(10.0f, 10.0f)); //Делаем надпись
}
img.Save(strPath); //Сохраняем файл по адресу, указанному в переменной strPath