点击" printscreen"我想自动将图像保存到文件中。但我不知道自己做错了什么。
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.PrintScreen)
{
Image screenshot = Clipboard.GetImage();
screenshot.Save("c:\\Users\\Default\\Pictures\\screenshot.jpg");
}
}
代码不包含任何错误,它根本无法正常工作。
答案 0 :(得分:3)
默认情况下Save method saves in png format(与bmp
文件兼容,请参阅教程中的示例),尝试明确指定图像的格式:
Image screenshot = Clipboard.GetImage();
screenshot.Save("c:\\Users\\Default\\Pictures\\screenshot.jpg", ImageFormat.Jpeg);
答案 1 :(得分:2)
默认情况下,使用png编码器,而不是jpg
http://msdn.microsoft.com/en-US/library/vstudio/ktx83wah.aspx
如果您想保存为JPG,则必须使用this overload
答案 2 :(得分:0)
您可以随时更改ImageFormat,然后从任何来源复制到剪贴板中。
item.SheetObject.CopyBitmapToClipboard();
Image img;
img = Clipboard.GetImage();
img.Save(temporaryFilePath + ".bmp", ImageFormat.Bmp);
但@Ilya Ivanov也是正确的。
答案 3 :(得分:0)
使用事件KeyUp
代替KeyDown
以及ImageFormat
以正确的方式保存图片。
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.PrintScreen)
{
Image screenshot = Clipboard.GetImage();
screenshot.Save("c:\\_temp\\screenshot.jpg", ImageFormat.Jpeg);
}
}
代码对我没有任何问题,当然 - 对于保存的图片。