我有一个应用程序,用户可以在其中像在油漆上一样绘制形状。我想保存用户创建的工作区并将其另存为 .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/