MFC怎么将图像采集卡采集到的图像转成BMP格式?求源码
下面是前面的一部分代码,采集到的图像保存在pImageBuffer里,类型为BYTEpImageBuffer=newBYTE[768*576];/**锁定指定位置的静态内...
下面是前面的一部分代码, 采集到的图像保存在pImageBuffer里,类型为BYTE
pImageBuffer = new BYTE[768*576];
/*
* 锁定指定位置的静态内存,
* 偏移由图像大小和图像序号确定,锁定大小为图像大小
* 用户可以在任何时候锁定指定位置的静态内存,然后通过pLinearAddr指针访问相应的内存。
*/
status = CGStaticMemLock(0, 768*576, &handle, (VOID **)&pStaticBuffer);
/*
* 将静态内存中的图像传递到用户缓冲区,同时进行格式转换。
* 如果静态内存中图像为15、16、32位,则转换为24位。
* 由于图像卡采集到静态内存的图像数据是正向存放,
* 而Windows中处理的位图数据需要倒置,因此一般还要将图像倒置(raw格式不用)。
*/
CGDataTransform(pImageBuffer, //图像缓冲区
pStaticBuffer, //静态内存
768, //图像宽度
576, //图像高度
8, //图像位深度
TRUE //是否倒置图像
);
CGStaticMemUnlock(handle); //解除静态内存锁定 展开
pImageBuffer = new BYTE[768*576];
/*
* 锁定指定位置的静态内存,
* 偏移由图像大小和图像序号确定,锁定大小为图像大小
* 用户可以在任何时候锁定指定位置的静态内存,然后通过pLinearAddr指针访问相应的内存。
*/
status = CGStaticMemLock(0, 768*576, &handle, (VOID **)&pStaticBuffer);
/*
* 将静态内存中的图像传递到用户缓冲区,同时进行格式转换。
* 如果静态内存中图像为15、16、32位,则转换为24位。
* 由于图像卡采集到静态内存的图像数据是正向存放,
* 而Windows中处理的位图数据需要倒置,因此一般还要将图像倒置(raw格式不用)。
*/
CGDataTransform(pImageBuffer, //图像缓冲区
pStaticBuffer, //静态内存
768, //图像宽度
576, //图像高度
8, //图像位深度
TRUE //是否倒置图像
);
CGStaticMemUnlock(handle); //解除静态内存锁定 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询