图像的建立,显示(100分)

  • 主题发起人 主题发起人 lwlnic
  • 开始时间 开始时间
L

lwlnic

Unregistered / Unconfirmed
GUEST, unregistred user!
我用winnov视频卡捕捉到一帧图象
根据提供的函数,得到图象各个像素点的rgb的值,
然后我用一个一个像素点复制的方法,在image控件的画布上
把这个图象显示出来了。
但这样很慢,需要3到4秒。
请问用windows 的api函数应该怎么做?
怎么建立,显示。
有问在vc里的form上怎么画(可以不回答)。
 
用BitBlt函数,如果是用VC则建议用DirectX技术。
 
only you
首先是建立的问题!
 
用canvas.copyrect呀,用画点肯定慢。
 
问题是我只得到指向所有像素值得一个指针,
我首先要建立这个位图吧?
 
可否用 scanline 是一个指针。
 
难道问题很难吗?再加一百分!
 
一点儿都不难,用SetDIBits这个API。 或SetDIBitsToDevice
 
你必须知道它的指针类型
我以前也做过同样的事
一般是一幅 BMP 格式的图像,
问题是颜色数目可能不是正常的 256 或16bit色
以前我用的时候,有些只有 64色或128色
你必须知道这些才行
 
1.我的位图是24位的.
2.指针类型是:unsigned char类型.
3.我现在直接写道文件里面也不对,即文件头没有写对!
4.数据指针绝对是对的!
 
在delphi 4以上的版本TBitmap提供了Pixels[col,row]:Tcolor
如果24位色彩3位一个点
我试过直接操作数组速度很快)
另外,视频取桢复制到clip
可以通过clip to Bitmap
 
首先把该指针指向的数据转化为TMeoryStream,然后用
image1.Picture.Bitmap.LoadFromStream(TMemoryStream)
试一下,应该可以。
 
TCanvas.StrechDraw
 
hi,我原来做过同样的东东,还将捕捉出的图像进行旋转,用很普通的方法,不足0.5秒显示一幅(24bit RGB,640*480)
方法:将捕捉下的图存为一文件,用TBitmap对象提取和处理即可
 
多人接受答案了。
 
后退
顶部