Как мне захватить текущий экран как изображение? - PullRequest
5 голосов
/ 03 апреля 2009

Я хочу добавить возможность пользователям захватывать текущий экран в моем приложении и отправлять его по электронной почте. У меня очень нетехническая база пользователей, поэтому мне нужно, чтобы это было как можно проще. Я планирую позволить им щелкнуть пункт меню под названием «Помоги мне!» который затем захватит текущий экран приложения, возможно в формате jpg или png, а затем откроет Outlook и добавит изображение в качестве вложения.

Я читал этот пост ScreenCapture в Code Project, но он немного старый и не совсем то, что я искал, поэтому я подумал, что проверю, есть ли лучший способ сделать это ,

Как мне начать это? Есть ли библиотека или достаточно встроенных возможностей?

Спасибо!

Ответы [ 2 ]

13 голосов
/ 03 апреля 2009

Этот пост, на который вы ссылаетесь, является правильным подходом, они просто сделали его очень сложным. Вы хотите использовать Graphics.CopyFromScreen.

Rectangle bounds = this.Bounds;

using(Bitmap ss = new Bitmap(bounds.Width, bounds.Height))
using(Graphics g = Graphics.FromImage(ss))
{
  g.CopyFromScreen(this.Location, Point.Empty, bounds.Size);
  ss.Save("test.jpg", ImageFormat.Jpeg);
}
3 голосов
/ 03 апреля 2009

Проверьте метод Graphics.CopyFromScreen .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...