我正在制作一个截图工具。我已经有了它,这样我的程序就可以用来用鼠标绘制一个矩形并保存该图像。现在我要做的是将生成的图像传输到一个图片框,向用户展示他们在决定保存它或其他任何内容之前刚刚捕获的内容。
有没有办法可以做到这一点?
到目前为止,我的屏幕捕获代码使用 ScreenCapture 类中的以下代码将捕获的图像保存到剪贴板:
public static bool saveToClipboard = true;
public static void CaptureImage(bool showCursor, Size curSize, Point curPos, Point SourcePoint, Point DestinationPoint, Rectangle SelectionRectangle, string FilePath, string extension)
{
using (Bitmap bitmap = new Bitmap(SelectionRectangle.Width, SelectionRectangle.Height))
{
using (Graphics g = Graphics.FromImage(bitmap))
{
g.CopyFromScreen(SourcePoint, DestinationPoint, SelectionRectangle.Size);
if (showCursor)
{
Rectangle cursorBounds = new Rectangle(curPos, curSize);
Cursors.Default.Draw(g, cursorBounds);
}
}
if (saveToClipboard)
{
Image img = (Image)bitmap;
Clipboard.SetImage(img);
}
}
}
有没有人做过这样的事情?另外,是否可以让图片框自动调整大小,以便使用屏幕截图大小而不是图片框?
更新
除了下面的一些评论,我一直在尝试保存我存储在上面的类中的图像并将其传递给图片框。但是当我这样做时没有显示任何内容。因此,我一直在使用的代码是:
在 form1.cs 上举行:
public void SetImage(Image img)
{
imagePreview.Image = img;
}
在屏幕截图类中:
if (saveToClipboard)
{
Image img = (Image)bitmap;
ControlPanel cp = new ControlPanel();
cp.SetImage(img);
Clipboard.SetImage(img);
}