【实例简介】C/C 、C#、PHP相机开发实例 大恒相机SDK

【实例截图】

【核心代码】

public  class GxBitmap

{

IGXDevice      m_objIGXDevice    = null;                ///

PictureBox     m_pic_ShowImage   = null;                ///

bool           m_bIsColor        = false;               ///

byte[]         m_byMonoBuffer    = null;                ///

byte[]         m_byColorBuffer   = null;                ///

byte[]         m_byRawBuffer     = null;                ///

int            m_nPayloadSize    = 0;                   ///

int            m_nWidth          = 0;                   ///

int            m_nHeigh          = 0;                   ///

Bitmap         m_bitmapForSave   = null;                ///

const uint     PIXEL_FORMATE_BIT = 0x00FF0000;          ///

const uint     GX_PIXEL_8BIT     = 0x00080000;          ///<8位数据图像格式

///

const int      COLORONCOLOR      = 3;

const uint     DIB_RGB_COLORS    = 0;

const uint     SRCCOPY           = 0x00CC0020;

CWin32Bitmaps.BITMAPINFO m_objBitmapInfo = new CWin32Bitmaps.BITMAPINFO();

IntPtr m_pBitmapInfo = IntPtr.Zero;

Graphics m_objGC = null;

IntPtr m_pHDC = IntPtr.Zero;

///

/// 构造函数用于初始化设备对象与PictureBox控件对象

///

/// 设备对象

/// 图像显示控件

public GxBitmap(IGXDevice objIGXDevice, PictureBox objPictureBox)

{

m_objIGXDevice = objIGXDevice;

m_pic_ShowImage = objPictureBox;

string strValue = null;

if (null != objIGXDevice)

{

//获得图像原始数据大小、宽度、高度等

m_nPayloadSize = (int)objIGXDevice.GetRemoteFeatureControl().GetIntFeature("PayloadSize").GetValue();

m_nWidth = (int)objIGXDevice.GetRemoteFeatureControl().GetIntFeature("Width").GetValue();

m_nHeigh = (int)objIGXDevice.GetRemoteFeatureControl().GetIntFeature("Height").GetValue();

//获取是否为彩色相机

if (objIGXDevice.GetRemoteFeatureControl().IsImplemented("PixelColorFilter"))

{

strValue = objIGXDevice.GetRemoteFeatureControl().GetEnumFeature("PixelColorFilter").GetValue();

if ("None" != strValue)

{

m_bIsColor = true;

}

}

}

//申请用于缓存图像数据的buffer

m_byRawBuffer = new byte[m_nPayloadSize];

m_byMonoBuffer = new byte[__GetStride(m_nWidth, m_bIsColor) * m_nHeigh];

m_byColorBuffer = new byte[__GetStride(m_nWidth, m_bIsColor) * m_nHeigh];

__CreateBitmap(out m_bitmapForSave, m_nWidth, m_nHeigh, m_bIsColor);

m_objGC = m_pic_ShowImage.CreateGraphics();

m_pHDC = m_objGC.GetHdc();

if (m_bIsColor)

{

m_objBitmapInfo.bmiHeader.biSize = (uint)Marshal.SizeOf(typeof(CWin32Bitmaps.BITMAPINFOHEADER));

m_objBitmapInfo.bmiHeader.biWidth = m_nWidth;

m_objBitmapInfo.bmiHeader.biHeight = -m_nHeigh;

m_objBitmapInfo.bmiHeader.biPlanes = 1;

m_objBitmapInfo.bmiHeader.biBitCount = 24;

m_objBitmapInfo.bmiHeader.biCompression = 0;

m_objBitmapInfo.bmiHeader.biSizeImage = 0;

m_objBitmapInfo.bmiHeader.biXPelsPerMeter = 0;

m_objBitmapInfo.bmiHeader.biYPelsPerMeter = 0;

m_objBitmapInfo.bmiHeader.biClrUsed = 0;

m_objBitmapInfo.bmiHeader.biClrImportant = 0;

}

else

{

m_objBitmapInfo.bmiHeader.biSize = (uint)Marshal.SizeOf(typeof(CWin32Bitmaps.BITMAPINFOHEADER));

m_objBitmapInfo.bmiHeader.biWidth = m_nWidth;

m_objBitmapInfo.bmiHeader.biHeight = -m_nHeigh;

m_objBitmapInfo.bmiHeader.biPlanes = 1;

m_objBitmapInfo.bmiHeader.biBitCount = 8;

m_objBitmapInfo.bmiHeader.biCompression = 0;

m_objBitmapInfo.bmiHeader.biSizeImage = 0;

m_objBitmapInfo.bmiHeader.biXPelsPerMeter = 0;

m_objBitmapInfo.bmiHeader.biYPelsPerMeter = 0;

m_objBitmapInfo.bmiHeader.biClrUsed = 0;

m_objBitmapInfo.bmiHeader.biClrImportant = 0;

m_objBitmapInfo.bmiColors = new CWin32Bitmaps.RGBQUAD[256];

// 黑白图像需要初始化调色板

for (int i = 0; i < 256; i )

{

m_objBitmapInfo.bmiColors[i].rgbBlue     = (byte)i;

m_objBitmapInfo.bmiColors[i].rgbGreen    = (byte)i;

m_objBitmapInfo.bmiColors[i].rgbRed      = (byte)i;

m_objBitmapInfo.bmiColors[i].rgbReserved = (byte)i;

}

}

m_pBitmapInfo = Marshal.AllocHGlobal(2048);

Marshal.StructureToPtr(m_objBitmapInfo, m_pBitmapInfo, false);

}

相机PHP,C/C++、C#、PHP相机开发实例 大恒相机SDK相关推荐

  1. 在Ubuntu中用Qt基于OpenCV调用大恒相机

    在Ubuntu中用Qt基于OpenCV调用大恒相机 前言 视觉萌新买了工业相机却不会用,上网也查不到具体方法,没办法只能自己硬刚了.刚开始自己摸索,碰到好多问题解决不了,Qt报错不知道咋回事,缺少的链 ...

  2. ubuntu系统配置大恒相机驱动并读取ros话题

    文章目录 0. 说明 1. 安装大恒相机sdk 1.1 下载 1.2 安装sdk(用于配置ip和调试相机参数) (1) 电脑网卡配置(网卡固定ip) (2)查看相机图像以及配置相机参数 2. 安装ro ...

  3. Python调用大恒相机采集图片(Ubuntu16.04)

    Python调用大恒相机(Ubuntu16.04) 文章目录 Python调用大恒相机(Ubuntu16.04) 下载API文件 环境配置 验证 采集图片 下载API文件 wget http://gb ...

  4. 大恒相机开发实践(1)——实时采图

    目录 前言 正文 准备工作 设备的初始化 设备信息的获取 实时采图 将采集到的Buffer传上显示层 总结 前言 本篇博客稍微记录一下我所写的插件.具体内容是有关于大恒相机的,关于这个相机,相信搜索到 ...

  5. 大恒相机开发实践(3)——参数设置

    目录 前言 正文 初始化配置信息 创建Xml节点 创建节点下面的Attribute 总结 前言 这一部分的内容放在如何生成大恒相机的参数,但其实难点并不在我接下去写的部分.难点在于你获得了这个节点的N ...

  6. 大恒相机开发实践(2)——触发采图

    目录 前言 正文 开启采图模式 开启实时采图功能 点击触发按钮 总结 前言 这部分完成的功能是触发采图,所谓触发采图,基本的过程是在先开启连续采图,然后,在某个触发信号到来的时候,读取其中的某一帧的信 ...

  7. Qt+大恒相机+OpenCV+MinGW界面开发

    Qt+大恒相机+OpenCV+MinGW界面开发 遇到的坑有哪些? 大恒相机接口的问题(C与C++选谁,傻傻分不清) OpenCV版本与MinGW编译平台适应性问题(编译通过,但是一运行就异常退出) ...

  8. 大恒相机开发(大恒SDK+opencv开发)笔记1

    大恒相机开发(大恒SDK+opencv开发 一.项目简介 在大三上学期做过人脸识别的开发,刚好下学期老师手中有相机的项目,然后项目就到了我手上,下面是我开发这个项目的一些经历,进程还在调试中.笔记会按 ...

  9. 大恒相机+VS开发+Qt 跑通示例工程

    直接复制和调试大恒相机自带的C++开发软件开发说明书中的示例工程,报错众多,无从下手. 终于经过注释多处代码,跑通了!以此为记,再接再厉. #include <QDebug> #inclu ...

最新文章

  1. python2和python3区别
  2. JAVA 创建线程池
  3. js实现图片无缝循环跑马灯
  4. Java Web——图像上传
  5. 调试CEF3程序的方法
  6. powershell电脑加域退域
  7. redhat6.5 yum register 问题
  8. 插值方法——Lagrange插值公式
  9. php的cms是什么意思,phpcms是什么
  10. [转]Android 之 Window、WindowManager 与窗口管理
  11. lamp里php 的升级,lamp架构之升级php版本
  12. Kafka单节点多broker的部署和使用
  13. Apache Kafka 2.7.0 稳定版发布
  14. android 多进程 坑,Android 开发中踩过的坑之八:多进程问题
  15. Hive MapJoin OOM
  16. thinkPHP 表单自动验证功能
  17. cad插件_CAD插件燕秀工具箱2.81
  18. 计算机屏显内容超过屏幕了,电脑屏幕超出工作频率范围修复方法
  19. 浅析汽车芯片信息安全之安全启动
  20. 北京中医药大学远程教育 计算机基础考试,北京中医药大学远程教育计算机基础(2008版)-第4次...

热门文章

  1. sudo apt update时 E: 仓库 “http://mirrors.ustc.edu.cn/ros/ubuntu jammy Release” 没有 Release
  2. 帮你解剖Python的一个轻量级桌面GUI开发第三方库:Eel,让它体无完肤
  3. 基于Fortran的结构力学位移法编程求解
  4. 神经网络训练样本的标签,训练图像识别神经网络
  5. HTML、CSS面试题
  6. MIT-6.s081-OS Lab: locks
  7. C# Base64编码、AES等编码加、解密
  8. C++中 =defaule 和 =delete 使用
  9. 在IE8中使用建行企业网银的解决方法
  10. 易语言 网页_取文本_reg的源码