QImage 保存到文件中
时间: 2024-02-07 12:02:39 浏览: 160
c#中把剪贴板里面的图片保存到文件
将 `QImage` 保存到文件中可以通过以下步骤实现:
1. 将 `QImage` 转为 `cv::Mat`,这个步骤可以参考我之前的回答。
2. 将 `cv::Mat` 保存为图像文件,可以使用 `cv::imwrite()` 函数。示例代码如下:
```cpp
cv::Mat img; // 假设已经加载了一张图像到 img 中
QString filename = "test.png";
cv::imwrite(filename.toStdString(), img);
```
这里我们将 `cv::Mat` 对象 `img` 保存为名为 `test.png` 的 PNG 格式文件。`cv::imwrite()` 函数会根据文件名的后缀自动推断文件格式,如果需要保存为其他格式的文件,可以修改文件名的后缀。
3. 如果需要将保存的图像文件转为 `QImage`,可以使用以下代码:
```cpp
QString filename = "test.png";
cv::Mat img = cv::imread(filename.toStdString(), cv::IMREAD_COLOR);
QImage qimg(img.data, img.cols, img.rows, static_cast<int>(img.step), QImage::Format_RGB888);
```
这里我们首先使用 `cv::imread()` 函数读取名为 `test.png` 的图像文件,并存储到 `cv::Mat` 对象 `img` 中。然后使用 `QImage` 的构造函数将 `img` 转为 `QImage` 对象 `qimg`,注意需要指定像素数据的格式为 `QImage::Format_RGB888`。
阅读全文