如何将 opencv 垫图像转换为 gdi 位图
How to convert an opencv mat image to gdi bitmap
我想将openCV Mat文件转换为GDI+位图图像。我找不到有关如何执行此操作的任何信息?
我认为没有直接的方法可以做到这一点,但我希望它不涉及将其写入文件并回读(http://opencv-users.1802565.n2.nabble.com/Convert-IplImage-to-Bitmap-td3784378.html)
我需要写这样的东西:
#include <windows.h>
#include <gdiplus.h>
#include <stdio.h>
using namespace Gdiplus;
Bitmap GetBitMap(cv::Mat inputImage)
{
Bitmap bitmap;
// convert inputImage to bitmap??
return bitmap;
}
根据文档,Bitmap
似乎有一个构造函数采用预分配的内存缓冲区。使用此构造函数,您的函数可能如下所示:
Bitmap GetBitMap(cv::Mat inputImage)
{
cv::Size size = inputImage.size();
Bitmap bitmap(size.width, size.height, inputImage.step1(), PixelFormat24bppRGB, inputImage.data);
return bitmap;
}
请注意,从函数返回的Bitmap
不会管理初始化它的内存。因此,请确保图像数据在Bitmap
的生命周期内保持活动状态。
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 在c++中使用nlohmann从类到json的转换
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 使用 GDI+ 旋转位图,然后转换为 HDC
- C++ Gdi+将图像转换为灰度
- 将 GDI Plus 位图转换为 QPixmap
- 将opencv图像转换为gdi位图不起作用取决于图像大小
- GDI+ - 将位图像素转换为 JPG 格式
- 如何将 opencv 垫图像转换为 gdi 位图
- 如何将SVG文件转换为等效的GDI+对象
- 将std::string转换为GDI+参数所需的const WCHAR*字符串
- GDI C/ c++ - BITMAP转换成现有的HBITMAP
- 最好的软件转换EMF文件到GDI命令