当前位置: 首页 > 知识库问答 >
问题:

如何将opencv mat图像转换为gdi位图

田意致
2023-03-14

我想把openCV Mat文件转换成GDI+位图图像。我找不到任何关于如何做到这一点的信息?

#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;
}

共有1个答案

巫马刚洁
2023-03-14

根据文档,bitmap似乎有一个构造函数,它使用预先分配的内存缓冲区。使用此构造函数,您的函数可能如下所示:

Bitmap GetBitMap(cv::Mat inputImage)
{
    cv::Size size = inputImage.size();
    Bitmap bitmap(size.width, size.height, inputImage.step1(), PixelFormat24bppRGB, inputImage.data);
    return bitmap;
}

请注意,从函数返回的位图并不管理初始化它所用的内存。因此,请确保图像数据在位图的生存期内一直处于活动状态。

 类似资料:
  • 问题内容: 我正在尝试使用以下代码将Icon()转换为Image(): 问题是,函数在上抛出。 对于记录,该值为默认图标(通过获取) 以下是引发异常的详细信息: 如果您需要更多详细信息,请告诉我,我将编辑我的信息以添加它们。 谢谢! 问题答案: 刚刚找到了一个代码段,如果您想更频繁地包装那些表现不佳的LAF提供的图标,可能会有所帮助: 要在您的代码段中使用,只需传递任意组件:

  • 问题内容: 我想将UIView转换为图像并将其保存在我的应用程序中。有人可以告诉我如何拍摄视图的屏幕截图或将其转换为图像,以及将其保存在应用程序(而不是相机胶卷)中的最佳方法是什么?这是该视图的代码: 问题答案: 例如,如果我有一个尺寸视图:100 100时50 50。我可以使用以下屏幕截图:

  • 问题内容: 我正在尝试从相机预览中捕获图像并在其上进行一些绘制。问题是,我只有大约3-4 fps的绘图,并且一半的帧处理时间是从摄像机预览接收和解码NV21图像并将其转换为 位图 。我有一个执行此任务的代码,是在另一个堆栈问题上找到的。它似乎并不快,但我不知道如何优化它。在Samsung Note 3(图像尺寸1920x1080)上大约需要100-150毫秒。我怎样才能使其更快地工作? 代码: 图

  • 问题内容: 我想将位图打印到移动蓝牙打印机(Bixolon SPP-R200)-SDK不提供直接方法来打印内存图像。所以我想到了这样转换一个位图: 到单色位图。我正在使用Canvas在给定的位图上方绘制黑色文本,效果很好。但是,当我将上述位图转换为ByteArray时,打印机似乎无法处理这些字节。我怀疑我需要一个每个像素一位的数组(一个像素将是白色= 1或黑色= 0)。 似乎没有方便的开箱即用的方

  • 在android中,我从这里得到一个图像对象https://inducesmile.com/android/android-camera2-api-example-tutorial/this camera tutorial。但我现在想要遍历像素值,有人知道我怎么做吗?我需要将它转换成其他的东西吗?我该怎么做? 谢谢

  • 问题内容: 您能否指导我如何将图像从URL转换为base64编码? 问题答案: 我认为应该是: