Bitmap printscreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics graphics = Graphics.FromImage(printscreen as Image);
graphics.CopyFromScreen(new Point(457, 215), new Point(), printscreen.Size);
printscreen.SetResolution(2575,3528);
printscreen.Save(@"C:\printscreen.jpg", ImageFormat.Jpeg);
Не работает Не понимаю что тут не так…
В итоге должна остаться картинка высокого разрешения, сделанная по координатам.
see here: c# - .NET - Bitmap.Save ignores Bitmap.SetResolution on Windows 7 - Stack Overflow
похоже проблема именно в printscreen.SetResolution(2575,3528); попробуй без него.
в нашем проекте работает код (см. ниже) он снимает скриншот и возвращает битмап, вполне нормального качества, без ручной установки сетрезолшин
public static Bitmap CaptureScreenRect(Rect rectToCopy)
{
Bitmap image = new Bitmap(Convert.ToInt32(rectToCopy.Width), Convert.ToInt32(rectToCopy.Height),
PixelFormat.Format24bppRgb);
{
using (Graphics gfx=Graphics.FromImage(image))
{
gfx.CopyFromScreen(Convert.ToInt32(rectToCopy.X), Convert.ToInt32(rectToCopy.Y), 0, 0, new System.Drawing.Size(Convert.ToInt32(rectToCopy.Width), Convert.ToInt32(rectToCopy.Height)));
}
}
return image;
}
еще одно: можно сохранять битмап в PNG формат, он качественее чем jpg и легче чем bmp