觉得没什么比代码更清楚了。直接“翠花,上代码”.
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对象,然后使用Load函数从文件或内存中加载图像。 - **保存图像**:使用Save函数将处理后的图像保存到文件,可以指定保存的文件格式。 - **图像操作**:调用提供的成员...
例如,你可以使用CXImage加载一个JPEG图像,然后将其保存为PNG格式,以获得更好的无损压缩效果。 CXImage的图像旋转功能是其亮点之一。它可以实现任意角度的旋转,这对于处理相机拍摄的图像或者需要调整图像方向的...
要在窗口中显示图像,可以利用Windows API中的CreateWindowEx和UpdateWindow函数创建并更新窗口,然后使用CxImage的Draw函数将图像绘制到设备上下文(DC)上。这通常需要配合消息处理函数,响应WM_PAINT消息来完成...
在本文中,我们将深入探讨如何使用CxImage库在C++环境中将PNG图像转换为JPG格式。CxImage是一个强大的C++图像处理库,它支持多种图像格式,包括PNG和JPEG,使得在Visual Studio 2010这样的开发环境中进行图像转换变...
CXImage是一个用C++编写的图像处理库,特别适合在MFC(Microsoft Foundation Classes)环境下进行图像操作。这个库提供了丰富的功能,包括图片的加载、保存、转换以及各种图像操作。本文将深入探讨如何利用CXImage库...
使用CxImage实现图像格式转换非常简单,只需要创建一个CxImage对象,加载图像文件,然后使用CxImage对象的Save方法将图像保存到指定的文件中。例如,可以使用以下代码将一个jpg图像转换为png图像: CxImage image; ...
8. 高级功能类:CxImage引入了针对特定格式的处理类,例如CximageRAW可以读取数码相机原始图像数据,而CxImageJPG支持JPEG图像的二次采样,允许调整压缩伪影,尤其是在处理具有明显轮廓的图像时。 9. 开发者资源:...
在本文中,我们将深入探讨如何在Visual Studio 2010环境下使用CxImage库来读取各种图片格式,并在内存中将它们转换为HBITMAP位图对象。这个过程对于在Windows应用程序中处理图像,特别是在GUI(图形用户界面)开发中...
《cximage x64 v6.0.0:自带PNG和JPG库的图像处理工具详解》 在IT行业中,图像处理是一项至关重要的任务,它涉及到图形用户界面、数据分析、机器学习等多个领域。cximage是一个著名的C++图像处理库,为开发者提供了...
### CxImage 图像库使用说明与特性详解 #### 一、概述 CxImage是一个功能强大的C++图像处理类库,适用于多种编程环境,如MFC等。它由Davide Pizzolato开发,提供了丰富的图像处理功能,支持多种图像格式的读取、...
10. **编码与解码**:CXimage库内置了多种图像编码和解码算法,可以高效地处理图像数据。 11. **多线程支持**:对于大型图像处理任务,CXimage可能支持多线程处理,以提高性能和响应速度。 12. **自定义扩展**:...
1. 加载图像:使用`CxImage::Load`函数从文件中加载图像,该函数会自动识别图像的格式。 2. 图像处理:通过调用`CxImage`类的成员函数进行所需的图像操作,如调整亮度、对比度,应用滤镜,或者进行几何变换。 3. ...
在本文中,我们将深入探讨如何使用CxImage库在VC++环境中显示图像,这对于初学者来说是一个非常实用的教程。CxImage是一个强大的C++类库,它允许开发者在Windows应用程序中处理各种图像格式,如BMP、JPEG、PNG等。...
《cximage图像处理类源代码详解》 在IT领域,图像处理是一项不可或缺的技术,它广泛应用于游戏开发、图像分析...通过深入理解并熟练使用cximage,开发者可以大大提高图像处理部分的效率和质量,为项目增添更多可能性。
在本项目中,"CXImage图像处理"提供了使用CXImage进行图像处理的源代码示例,非常适合那些希望深入了解或使用CXImage的人进行学习。 CXImage库的核心特性包括: 1. **图像格式支持**:CXImage能够读取和写入多种...
CXImage是一款著名的图像处理库,尤其在编程领域中广受欢迎,因为它提供了丰富的图像处理功能,类似于Windows操作系统内置的“画图”工具。该库由国外开发者编写,支持多种图像格式,包括BMP、JPG和TIFF等,使得...
4. **获取图像尺寸**:加载成功后,可以通过`GetWidth()`和`GetHeight()`方法获取图片的宽度和高度。 ```cpp int width = image.GetWidth(); int height = image.GetHeight(); ``` 【示例代码详解】 在提供的...
2. **加载图像**:使用CxImage提供的`Load`函数,从文件加载彩色图像到内存中。例如,`CxImage image("input.jpg");`加载名为"input.jpg"的图像。 3. **灰度化处理**:CxImage库中并没有直接提供灰度化转换的函数,...
例如,通过`CxImage::Load()`函数读取图像文件,然后利用`CxImage::DrawToHDC()`方法将图像绘制到设备上下文(DC)中,实现在窗口上的显示。 2. 图像转换:CxImage库提供了多种颜色空间转换函数,例如RGB到灰度、...
在本文中,我们将深入探讨如何使用CXImage库在对话框中显示包括JPG、TIFF和BMP在内的多种图片格式。CXImage是一个功能强大的C++类库,专门用于图像处理和显示,它支持众多的图像格式,并且易于集成到MFC(Microsoft ...