`
pleasetojava
  • 浏览: 742042 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

小技巧:用CxImage将从摄像头获取的图像原始数据转成JPG,然后通过DDS发送出去

OS 
阅读更多

觉得没什么比代码更清楚了。直接“翠花,上代码”.

int VideoPublisher_T::publishVideo(long lw,long lh,ACE_UINT8 * dibData, long size)
{
ACE_UINT8* jpgImageData = 0;
long jpgImageDataSize = 0;
CxImage image;
Video::FrameDataWriter_var dw =
Video::FrameDataWriter::_narrow(this->dataWriter_.in());
if (CORBA::is_nil(dw.in()))
{
ACE_ERROR_RETURN((LM_ERROR,"(%t|%T) narrow frame data writer\n"),-1);
}
// bytes alignment
ACE_UINT32 bytesPerLine = 4 * ((lw * 24 + 31)/32);
// Convert original RGB data to Image
image.CreateFromArray(
(unsigned char *)dibData,
lw,
lh,
24,
bytesPerLine,
false);
image.Encode(jpgImageData,jpgImageDataSize,CXIMAGE_FORMAT_JPG);
image.SetJpegQuality(24);

Video::Frame frame;
frame.frameId = 0;
frame.timestamp = ::getTimestamp();
frame.deviceId = OPTIONS::instance()->getDeviceId();
frame.type = Video::IT_JPG;
frame.deviceInfo = CORBA::string_dup(this->statMsg_);
frame.image.length(jpgImageDataSize);
ACE_OS::memcpy(frame.image.get_buffer(),(const void*)jpgImageData,jpgImageDataSize);
image.FreeMemory(jpgImageData);

DDS::ReturnCode_t ret = dw->write(frame, DDS::HANDLE_NIL);
if (ret != DDS::RETCODE_OK)
{
ACE_ERROR_RETURN((LM_ERROR,"(%t|%T) data writer\n"),-1);

}

return 0;
}

分享到:
评论

相关推荐

    图像处理库CxImage 图像处理库CxImage 图像处理库CxImage

    - **初始化和加载图像**:创建一个CxImage对象,然后使用Load函数从文件或内存中加载图像。 - **保存图像**:使用Save函数将处理后的图像保存到文件,可以指定保存的文件格式。 - **图像操作**:调用提供的成员...

    cximage 图像转换,图像旋转,处理图像的高级类库

    例如,你可以使用CXImage加载一个JPEG图像,然后将其保存为PNG格式,以获得更好的无损压缩效果。 CXImage的图像旋转功能是其亮点之一。它可以实现任意角度的旋转,这对于处理相机拍摄的图像或者需要调整图像方向的...

    CxImage用法(显示图像)及类库资源

    要在窗口中显示图像,可以利用Windows API中的CreateWindowEx和UpdateWindow函数创建并更新窗口,然后使用CxImage的Draw函数将图像绘制到设备上下文(DC)上。这通常需要配合消息处理函数,响应WM_PAINT消息来完成...

    利用CxImage将PNG转成JPG

    在本文中,我们将深入探讨如何使用CxImage库在C++环境中将PNG图像转换为JPG格式。CxImage是一个强大的C++图像处理库,它支持多种图像格式,包括PNG和JPEG,使得在Visual Studio 2010这样的开发环境中进行图像转换变...

    基于cximage实现的图片格式和位深度转换

    CXImage是一个用C++编写的图像处理库,特别适合在MFC(Microsoft Foundation Classes)环境下进行图像操作。这个库提供了丰富的功能,包括图片的加载、保存、转换以及各种图像操作。本文将深入探讨如何利用CXImage库...

    使用CxImage实现图像格式转换.pdf

    使用CxImage实现图像格式转换非常简单,只需要创建一个CxImage对象,加载图像文件,然后使用CxImage对象的Save方法将图像保存到指定的文件中。例如,可以使用以下代码将一个jpg图像转换为png图像: CxImage image; ...

    CxImage图像处理类库说明

    8. 高级功能类:CxImage引入了针对特定格式的处理类,例如CximageRAW可以读取数码相机原始图像数据,而CxImageJPG支持JPEG图像的二次采样,允许调整压缩伪影,尤其是在处理具有明显轮廓的图像时。 9. 开发者资源:...

    【代码】VS2010 用CxImage读入各种图片格式后在内存中转换为HBITMAP位图Demo

    在本文中,我们将深入探讨如何在Visual Studio 2010环境下使用CxImage库来读取各种图片格式,并在内存中将它们转换为HBITMAP位图对象。这个过程对于在Windows应用程序中处理图像,特别是在GUI(图形用户界面)开发中...

    cximage x64 v6.0.0 自带png jpg等库

    《cximage x64 v6.0.0:自带PNG和JPG库的图像处理工具详解》 在IT行业中,图像处理是一项至关重要的任务,它涉及到图形用户界面、数据分析、机器学习等多个领域。cximage是一个著名的C++图像处理库,为开发者提供了...

    CxImage图像库使用说明

    ### CxImage 图像库使用说明与特性详解 #### 一、概述 CxImage是一个功能强大的C++图像处理类库,适用于多种编程环境,如MFC等。它由Davide Pizzolato开发,提供了丰富的图像处理功能,支持多种图像格式的读取、...

    CXimage VC++ 最完整 图像处理 代码

    10. **编码与解码**:CXimage库内置了多种图像编码和解码算法,可以高效地处理图像数据。 11. **多线程支持**:对于大型图像处理任务,CXimage可能支持多线程处理,以提高性能和响应速度。 12. **自定义扩展**:...

    CxImage图像操作库

    1. 加载图像:使用`CxImage::Load`函数从文件中加载图像,该函数会自动识别图像的格式。 2. 图像处理:通过调用`CxImage`类的成员函数进行所需的图像操作,如调整亮度、对比度,应用滤镜,或者进行几何变换。 3. ...

    用CxImage显示图片例程

    在本文中,我们将深入探讨如何使用CxImage库在VC++环境中显示图像,这对于初学者来说是一个非常实用的教程。CxImage是一个强大的C++类库,它允许开发者在Windows应用程序中处理各种图像格式,如BMP、JPEG、PNG等。...

    cximage图像处理类源代码(最新更新)

    《cximage图像处理类源代码详解》 在IT领域,图像处理是一项不可或缺的技术,它广泛应用于游戏开发、图像分析...通过深入理解并熟练使用cximage,开发者可以大大提高图像处理部分的效率和质量,为项目增添更多可能性。

    CXImage图像处理

    在本项目中,"CXImage图像处理"提供了使用CXImage进行图像处理的源代码示例,非常适合那些希望深入了解或使用CXImage的人进行学习。 CXImage库的核心特性包括: 1. **图像格式支持**:CXImage能够读取和写入多种...

    大名鼎鼎的CXImage图像处理程序(含源码和demo程序)

    CXImage是一款著名的图像处理库,尤其在编程领域中广受欢迎,因为它提供了丰富的图像处理功能,类似于Windows操作系统内置的“画图”工具。该库由国外开发者编写,支持多种图像格式,包括BMP、JPG和TIFF等,使得...

    CxImage简单应用示例(读取图片的大小)

    4. **获取图像尺寸**:加载成功后,可以通过`GetWidth()`和`GetHeight()`方法获取图片的宽度和高度。 ```cpp int width = image.GetWidth(); int height = image.GetHeight(); ``` 【示例代码详解】 在提供的...

    CxImage灰值化图像

    2. **加载图像**:使用CxImage提供的`Load`函数,从文件加载彩色图像到内存中。例如,`CxImage image("input.jpg");`加载名为"input.jpg"的图像。 3. **灰度化处理**:CxImage库中并没有直接提供灰度化转换的函数,...

    CxImage库及使用实例

    例如,通过`CxImage::Load()`函数读取图像文件,然后利用`CxImage::DrawToHDC()`方法将图像绘制到设备上下文(DC)中,实现在窗口上的显示。 2. 图像转换:CxImage库提供了多种颜色空间转换函数,例如RGB到灰度、...

    cximage在dialog中显示jpg tif,bmp等图片

    在本文中,我们将深入探讨如何使用CXImage库在对话框中显示包括JPG、TIFF和BMP在内的多种图片格式。CXImage是一个功能强大的C++类库,专门用于图像处理和显示,它支持众多的图像格式,并且易于集成到MFC(Microsoft ...

Global site tag (gtag.js) - Google Analytics