我想用VC实现一个能自由变形并且可以在窗口边缘进行灰度调节的播放窗口,请问我该如何实现这一点?
如果调用控件那么自由变形和灰度调节恐怕是做不到了,有人说DIRECTSHOW可以,请问具体如何实现?推荐下这方面相关的教程也可以
如果调用控件那么自由变形和灰度调节恐怕是做不到了,有人说DIRECTSHOW可以,请问具体如何实现?推荐下这方面相关的教程也可以
解决方案 »
- MFC 设置编辑框字体,颜色,大小,加粗,下划线等等
- 怎么在class CDockWnd : public CControlBar没有显示CEdit m_wndEdit;
- mysql COM组件中C API下记录集操作的问题
- 谁给我一个ODBC连接数据源的例子
- 使用wpcap中的函數pcap_findalldevs(&alldevs, ebuf)如何得到網卡的mac address?
- RichEdit达人请入,如何给CRichEditCtrl控件添加Tooltip~~~?100分
- 关于24位真彩色位图的问题,高手请帮忙!不胜感谢!
- mfc 数据库赋值给变量
- 单文档分割客户区后,左右区域显示不同的图片?
- 请问应该怎样学VC?
- 消息函数启动线程的执行
- OPENGL播放器的播放窗口变形问题
有种制作透明图作背景
这样样式就是你的图的范围了,算不算自由变形?
至于播放的话,可能就是把一个wmplayer控件内嵌在里面了
不知道行不行~~~?
ISampleGrabber
vmr9
试试这个:
C:\DXSDK\Samples\C++\DirectShow\Filters\SampVid
在你的filter链路上接一个 NULL Renderer,然后将你从ISampleGrabber接口获得的图像数据在窗口上用GDI画出来。这个窗口可以完全有你写了,异型窗口。
申明,这代码也是我baidu来的还没有用过,若产生异常,后果自负,呵呵
//pixelData:rgb24
//@iPercent:value from 1 to 200;100 is the original value
void wx_do_brightness (uint8_t *pixelData,uint32_t width,uint32_t height,int32_t iPercent)
{
int x,y;
uint8_t *pPixel=0;
int nSpan=3;//only for rgb24
if(iPercent==100)
return;
iPercent = (iPercent<<7)/100 ;
for (y=0;y <height;y++)
{
pPixel=pixelData+y*width*nSpan;
for (x=0 ; x <width ; x++,pPixel += nSpan)
{
pPixel[0] = min ((pPixel[0] * iPercent)>>7 , 255) ;
pPixel[1] = min ((pPixel[1] * iPercent)>>7, 255) ;
pPixel[2] = min ((pPixel[2] * iPercent)>>7, 255) ;
}
}
}
//pixelData:rgb24
//@iPercent:value from 1 to 200;100 is the original value
void wx_do_contrast (uint8_t *pixelData,uint32_t width,uint32_t height,int32_t iPercent)
{
int x,y,temp;
uint8_t *pPixel=0;
int nSpan = 3;//only for rgb24
iPercent = iPercent<<7 / 100 ;
temp=128-iPercent;
for (y=0 ; y <height; y++)
{
pPixel=pixelData+y*width*nSpan;
for (x = 0 ; x < width ; x++, pPixel += nSpan)
{
pPixel[0] = max (min (temp+(pPixel[0]*iPercent)>>7, 255), 0) ;
pPixel[1] = max (min (temp+(pPixel[1]*iPercent)>>7, 255), 0) ;
pPixel[2] = max (min (temp+(pPixel[2]*iPercent)>>7, 255), 0) ;
}
}
}
http://topic.csdn.net/u/20080714/17/3d0a8fce-e04d-4566-b06e-ed090ae73e93.html