位图保存无效参数
Posted
技术标签:
【中文标题】位图保存无效参数【英文标题】:Bitmap save invalid parameters 【发布时间】:2018-06-03 11:03:24 【问题描述】:我正在尝试创建一个截图工具,只是为了学习更多 C#。
如果我想保存屏幕截图,我会收到错误“无效参数”。我做错了什么?这是我的方法。
private void TakeSnapshot()
string myDir = "C:\\Screenshots";
try
Bitmap printscreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics graphics = Graphics.FromImage(printscreen as Image);
graphics.CopyFromScreen(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, 0, 0, printscreen.Size);
printscreen.Dispose();
printscreen.Save(myDir + "Screenshot.png", ImageFormat.Png);
catch (Exception ex)
MessageBox.Show(ex.Message);
【问题讨论】:
异常发生在哪一行,文档中关于需要哪些参数的说明是什么?你也应该在Save
之后Dispose
。
现在会保存截图,但新的问题是,整个截图只是黑色/空白。
看起来您的文件路径中缺少“\”。养成的一个好习惯是使用Path.Combine()
创建文件系统路径,因为它会为您添加这些内容。
好的,我完成了,非常感谢。 :)
【参考方案1】:
有四个问题:
CopyFromScreen 的参数错误。这就是为什么结果都是黑色的。请在帮助中查找正确的参数:
https://msdn.microsoft.com/en-us/library/fw1kt6f9(v=vs.110).aspx
您在保存前处置。反过来做。
图片的路径缺少反斜杠。
图形对象也必须被释放。
【讨论】:
使用双换行符分隔段落。 SO 文本解析器会忽略单个换行符。如果您想将项目显示为列表,请参阅格式化帮助或使用 UI 按钮。 哦,在这种情况下......他应该在位图周围使用using
块。这将表明它只能在该块内使用。以上是关于位图保存无效参数的主要内容,如果未能解决你的问题,请参考以下文章