c++ - 将类似涂鸦功能后的客户区保存为图像

标签 c++ opencv wxwidgets codeblocks

我有一个应用程序,用户可以在其中像在油漆上一样绘制形状。我想保存用户创建的工作区并将其另存为 .png 图像。我在代码块中使用 Wxwidgets。我将 opencv 用于我的图像处理功能。

提前致谢。

最佳答案

这里是如何做到这一点的大纲:

不是绘制到显示DC,而是绘制到一个wxMemoryDC

当您准备好显示图像时,将内存 DC block 传输到显示 DC

当您准备好将图像保存到文件时,从内存 DC 中选择位图

将位图保存到文件

wxMemoryDC memDC;
wxBitmap bitmap(200, 200);
memDC.SelectObject(bitmap);
memDC.SetBackground(*wxWHITE_BRUSH);
memDC.Clear();
memDC.SetPen(*wxRED_PEN);
memDC.SetBrush(*wxTRANSPARENT_BRUSH);
memDC.DrawRectangle(wxRect(10, 10, 100, 100));
memDC.SelectObject(wxNullBitmap);
bitmap.SaveFile("fname.png",wxBITMAP_TYPE_PNG);

关于c++ - 将类似涂鸦功能后的客户区保存为图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9412322/

相关文章:

c++ - 如何在 C++ 中使用模板函数实现父类?

c++ - 有条件地调用 cv::VideoCapture 构造函数

c++ - 使用opencv进行功能检测失败并出现seg错误

c++ - 如何在 opencv 和 c++ 中使用鼠标在图像上画线?

c++ - 事件处理程序未被调用? - wxWidgets

c++ - 不可调整大小的 vector/不可重新分配但可变成员的数组?

c++ - BOOST ASIO - 异步套接字

c++ - 如何在平移/旋转后重新计算轴对齐的边界框

c++ - 在wxWidgets中创建一个全局的wxCriticalSection变量不好吗?

python - 在二郎 : How do I expand wxNotebook in a panel?