CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

我想用C#开发一个与USB接口的摄像头连接并把图像显示出来的程序,不知C#这方面能不能作到?

楼主zjh135(aaa)2005-06-01 11:47:24 在 .NET技术 / C# 提问

我想用C#开发一个与USB接口的摄像头连接并把图像显示出来的程序,不知C#这方面能不能作到? 问题点数:0、回复次数:10Top

1 楼xieyongxiang(不过如此)回复于 2005-06-01 12:15:59 得分 0

能,当然能了,不过,我也没有用C#做过,本人只用DELPHI做过Top

2 楼lx1116(阿牛)回复于 2005-06-01 12:19:44 得分 0

当然能作,俺做过Top

3 楼tianxia1(天下)回复于 2005-06-01 12:37:20 得分 0

只要能得到那个接口就能做Top

4 楼zjh135(aaa)回复于 2005-06-01 12:51:42 得分 0

那里有示例代码??Top

5 楼mynetpc(大头头不大)回复于 2005-06-10 21:09:19 得分 0

封装api就可以了Top

6 楼lql9935(天涯孤客)回复于 2005-06-10 21:16:13 得分 0

用C++来吧!Top

7 楼ycxdy(ycx)回复于 2005-06-10 21:27:12 得分 0

directshow  
  Top

8 楼usepc(usepc)回复于 2005-06-10 21:33:56 得分 0

using   System;  
  using   System.Runtime.InteropServices;  
   
  namespace   Wuyin.ShoesManager  
  {  
          ///   <summary>  
          ///   VedioCapture   的摘要说明。  
          ///   </summary>  
          public   class   VedioCapture  
          {  
                  private   int   hCaptureM;  
                  private   bool   isUnLoad   =   false;  
                  public   VedioCapture()  
                  {                  
                  }  
                  [DllImport("avicap32.dll")]  
                  private   static   extern   int   capCreateCaptureWindow(   string   strWindowName,   int   dwStyle,   int   x,   int   y   ,int   width,   int   height   ,   int   hwdParent,   int   nID   );  
                  [DllImport("user32.dll")]  
                  private   static   extern   int   SendMessage(   int   hwnd   ,   int   wMsg,   int   wParam   ,   int   lParam   );  
                  [DllImport("user32.dll")]  
                  private   static   extern   int   SendMessage(   int   hwnd   ,   int   wMsg,   int   wParam   ,   string   lParam   );  
                  [DllImport("Kernel32.dll")]  
                  private   static   extern   bool   CloseHandle(   int   hObject   );  
                  public   bool   Initialize(   System.Windows.Forms.Control   aContainer   ,   int   intWidth,   int   intHeight   )  
                  {  
                          hCaptureM   =   capCreateCaptureWindow(   "",   0x40000000   |   0x10000000,   0,0,intWidth,intHeight,aContainer.Handle.ToInt32()   ,1   );  
                          if(   hCaptureM   ==   0   )   return   false;  
                           
                          int   ret   =   SendMessage(   hCaptureM   ,   1034,   0,0   );  
                          if(   ret   ==   0   )  
                          {  
                                  CloseHandle(hCaptureM);  
                                  return   false;  
                          }  
                          //WM_CAP_SET_PREVIEW  
                          ret   =   SendMessage(   hCaptureM,   1074,   1,   0   );  
                          if(   ret   ==   0   )  
                          {  
                                  this.UnLoad();  
                                  return   false;  
                          }  
                          //WM_CAP_SET_SCALE  
                          ret   =   SendMessage(   hCaptureM,   1077,   1,   0   );  
                          if(   ret   ==   0   )  
                          {  
                                  this.UnLoad();  
                                  return   false;  
                          }  
                          //WM_CAP_SET_PREVIEWRATE  
                          ret   =   SendMessage(   hCaptureM,   1076,   66,   0   );  
                          if(   ret   ==   0   )  
                          {  
                                  this.UnLoad();  
                                  return   false;  
                          }  
                          return   true;  
                  }  
   
                  public   void   SingleFrameBegin()  
                  {  
                          //  
                          int   ret   =   SendMessage(   hCaptureM,   1094   ,   0,   0   );  
                  }  
                  public   void   SingleFrameEnd()  
                  {  
                          //  
                          int   ret   =   SendMessage(   hCaptureM,   1095   ,   0,   0   );  
                  }  
   
                  public   void   SingleFrameMode()  
                  {  
                          //WM_CAP_GRAB_FRAME  
                          int   ret   =   SendMessage(     hCaptureM,   1084   ,   0,   0   );  
                          //WM_CAP_SET_PREVIEW    
                          //int   ret   =   SendMessage(     hCaptureM,   1074   ,   0,   0   );  
                          //WM_CAP_SINGLE_FRAME  
                          //ret   =   SendMessage(   hCaptureM,   1096   ,   0,   0   );  
                  }  
                  public   void   PreviewMode()  
                  {  
                          int   ret   =   SendMessage(   hCaptureM,   1074   ,   1,   0   );  
                  }                  
   
                  public   void   UnLoad()  
                  {  
                          int   ret   =   SendMessage(   hCaptureM,   1035,   0,   0   );  
                          CloseHandle(   this.hCaptureM   );  
                          isUnLoad   =   true;  
                  }  
   
                  public   void   CopyToClipBorad()  
                  {  
                          int   ret   =   SendMessage(     hCaptureM,   1054,   0,   0   );  
                  }  
   
                  public   void   ShowFormatDialog()  
                  {  
                          int   ret   =   SendMessage(     hCaptureM,   1065,   0,   0   );  
                  }  
                  public   void   SaveToDIB(   string   fileName   )  
                  {  
                          int   ret   =   SendMessage(     hCaptureM,   1049,   0,   fileName   );  
                  }  
   
                  public   void   ShowDisplayDialog()  
                  {  
                          int   ret   =   SendMessage(   hCaptureM,   1067,   0,   0   );  
                  }  
                  public   System.Drawing.Image   getCaptureImage()  
                  {  
                          System.Windows.Forms.IDataObject   iData   =   System.Windows.Forms.Clipboard.GetDataObject();  
                          System.Drawing.Image   retImage   =   null;  
                          if(   iData   !=     null   )    
                          {  
                                  if(   iData.GetDataPresent(   System.Windows.Forms.DataFormats.Bitmap   )   )  
                                  {  
                                          retImage   =   (System.Drawing.Image)iData.GetData(   System.Windows.Forms.DataFormats.Bitmap   );  
                                  }    
                                  else   if(   iData.GetDataPresent(   System.Windows.Forms.DataFormats.Dib     )   )  
                                  {  
                                          retImage   =   (System.Drawing.Image)iData.GetData(   System.Windows.Forms.DataFormats.Dib   );  
                                  }  
                          }  
                          return   retImage;  
                  }  
   
                  ~VedioCapture()  
                  {  
                          if(   !isUnLoad   )  
                          {  
                                  this.UnLoad();  
                          }  
                  }  
          }  
  }  
   
   
  Top

9 楼gselec(海宏)回复于 2005-06-10 23:05:38 得分 0

经典,我还一位c#不能做呢。Top

10 楼zjh135(aaa)回复于 2005-06-13 17:30:55 得分 0

没有注释呢,不知如何用呢??Top

相关问题

  • 我要用USB接口驱动三个摄像头...
  • C#中如何才能检查到USB摄像头的插拨???????????????
  • 如何获取usb接口摄像头采集的图像数据
  • 如何用USB接口的摄像头作为图像处理的输入设备
  • 我要用USB接口驱动三个摄像头,请问我应该如何编程?
  • 摄像头截图程序中从usb接口中出来的数据是什么格式的?
  • C#的USB接口代码!
  • usb摄像头可否进行编程?
  • 如何调用摄像头的软件接口呀?请帮忙!
  • 如何得到摄像头驱动程序的控制接口

关键词

  • c#
  • dll
  • hcapturem
  • sendmessage
  • ret
  • retimage
  • vediocapture
  • isunload
  • dataformats
  • idata

得分解答快速导航

  • 帖主:zjh135

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo