PureBasic操作摄像头

呵呵,一共两种方法,用avicap32.dll,或者用DirectShow

前者简单一点,也是比较通用的办法,样例代码:

 

Code

 

如果用directshow的话,就比较麻烦,但是效率高一些,需要使用带wdm驱动的摄像头

开始前,首先要搞到一大堆directshow的头文件(样例代码中已经把需要的部分都写进去了,不够用自己转),不大好找,因为现在directshow已经从directx挪到windows里去了

purebasic可以理解成c+,注意,少个+,毕竟不支持面向对象,所以头文件也可以当原料使用

lib文件就不用了,已经集成了一部分,干这种小事足够了

用头文件主要是抄袭里面的常量定义,没别的用处

direct×××是以com为基础的,vc可以用,purebasic当然也可以,而且更简洁一些

闲话少说,上菜:

 

Code

 

上述代码只是简单的实现摄像头预览,保存图片什么的其实也不困难,目前只适用于一个摄像头,有兴趣的兄弟可以完善一下,这个是从dirext sdk样例照猫画虎写的,漏洞很多,挖咔咔

多说几句,purebasic中一个常用的东东是“*”,可以简单理解为指针或内存符号,vc中的类型转换都可以通过这个玩意实现,其实c++和c主要都是玩内存,这个东西就是内存指针最直白的描述,通过修饰,即可完成几乎全部操作;另一个有用的东东是“@”,相当于c++中的&,可以理解为引用,@*写在一起可以实现c++中**的用途(偶没看过***,可能孤陋寡闻了);第三个让人兴奋的东西是“\”,是半面向对象的(只有数据类型,没有方法),不过只要能认识到方法其实也是内存指针,就没什么不可能的,这个配合interface,可以搞定很多东西,不过现在没空研究interface,有机会仔细看看

posted on 2008-12-19 17:29  大河马  阅读(1180)  评论(0编辑  收藏  举报

导航