for (unsigned int src = 0, dst = 0; src < bi.biSizeImage; src +=3, dst +=4)
{
m_ListVideo[dex].data_avi_new[dst+3] = 0xFF; // copy pixel data over
m_ListVideo[dex].data_avi_new[dst] = bitmapImage[src];
m_ListVideo[dex].data_avi_new[dst+1] = bitmapImage[src+1];
m_ListVideo[dex].data_avi_new[dst+2] = bitmapImage[src+2];
}因为是实时数据,所以影响太大....有好方法没?
解决方案 »
- 我在SDI的View中加载了一个Dialog,然后在Dialog中注册网络事件,进行基于TCP的socket通信,但是现在发现这些事件没有响应,请问是怎么回事?
- 如何在窗体中的控件上绘BMP图
- MSComm开发程序移植到Windows2000的乱码问题
- 关于单文档中使用CPropertySheet 控件
- 菜鸟的问题。对于熟悉多线程的不算是难题。
- 急,急,急 如何远程调用服务器端程序?
- 类似金山词霸里显示单词各种解释的子窗口怎样制作啊?
- 串口打开失败
- 如何实现按下一键就logoff(Win32 api)?
- 如何检测并口打印时的打印错误(如无联机,打印机电源没接口)
- Unicode 项目转化?
- 求助,学习的困惑!
如果可以 干脆再建立一个专门的透明度文件 来标明原图中某个像素的透明度吧 如果10*10的图像 你可以定义一个
char alph[10][10];来存储透明度数据既然时时性要求高又何必拘泥于图像固有格式呢,在显示的时候再进行一下运算就可以了。
透明度运算应该不会浪费很多计算的 因为即便是标准格式也难免要做响应计算。
for (unsigned int src = 0, dst = 0; src < bi.biSizeImage; src +=3, dst +=4)
{
*((DWORD*)m_ListVideo[dex].data_avi_new[dst]) = (*((DWORD*)bitmapImage[src])) | 0xFF000000;
}
PVOID p1 = bitmapImage;
PVOID p2 = m_ListVideo[dex].data_avi_new;
unsigned number = bi.biSizeImage/3;
__asm {
pushad
mov al, 0xff
mov ecx, number
mov esi, p1
mov edi, p2
lp:
movsw
movsb
stosb
loop lp
popad
}
我之前添加alpha导致FPS从50降到10,用你的代码之后升到了38,TO Tinary3v0
我也不想拘泥于形式,不过用了CEGUI,不使用alpha格式图片就无法正常显示.