相机PHP,C/C++、C#、PHP相机开发实例 大恒相机SDK
【实例简介】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相关推荐
- 在Ubuntu中用Qt基于OpenCV调用大恒相机
在Ubuntu中用Qt基于OpenCV调用大恒相机 前言 视觉萌新买了工业相机却不会用,上网也查不到具体方法,没办法只能自己硬刚了.刚开始自己摸索,碰到好多问题解决不了,Qt报错不知道咋回事,缺少的链 ...
- ubuntu系统配置大恒相机驱动并读取ros话题
文章目录 0. 说明 1. 安装大恒相机sdk 1.1 下载 1.2 安装sdk(用于配置ip和调试相机参数) (1) 电脑网卡配置(网卡固定ip) (2)查看相机图像以及配置相机参数 2. 安装ro ...
- Python调用大恒相机采集图片(Ubuntu16.04)
Python调用大恒相机(Ubuntu16.04) 文章目录 Python调用大恒相机(Ubuntu16.04) 下载API文件 环境配置 验证 采集图片 下载API文件 wget http://gb ...
- 大恒相机开发实践(1)——实时采图
目录 前言 正文 准备工作 设备的初始化 设备信息的获取 实时采图 将采集到的Buffer传上显示层 总结 前言 本篇博客稍微记录一下我所写的插件.具体内容是有关于大恒相机的,关于这个相机,相信搜索到 ...
- 大恒相机开发实践(3)——参数设置
目录 前言 正文 初始化配置信息 创建Xml节点 创建节点下面的Attribute 总结 前言 这一部分的内容放在如何生成大恒相机的参数,但其实难点并不在我接下去写的部分.难点在于你获得了这个节点的N ...
- 大恒相机开发实践(2)——触发采图
目录 前言 正文 开启采图模式 开启实时采图功能 点击触发按钮 总结 前言 这部分完成的功能是触发采图,所谓触发采图,基本的过程是在先开启连续采图,然后,在某个触发信号到来的时候,读取其中的某一帧的信 ...
- Qt+大恒相机+OpenCV+MinGW界面开发
Qt+大恒相机+OpenCV+MinGW界面开发 遇到的坑有哪些? 大恒相机接口的问题(C与C++选谁,傻傻分不清) OpenCV版本与MinGW编译平台适应性问题(编译通过,但是一运行就异常退出) ...
- 大恒相机开发(大恒SDK+opencv开发)笔记1
大恒相机开发(大恒SDK+opencv开发 一.项目简介 在大三上学期做过人脸识别的开发,刚好下学期老师手中有相机的项目,然后项目就到了我手上,下面是我开发这个项目的一些经历,进程还在调试中.笔记会按 ...
- 大恒相机+VS开发+Qt 跑通示例工程
直接复制和调试大恒相机自带的C++开发软件开发说明书中的示例工程,报错众多,无从下手. 终于经过注释多处代码,跑通了!以此为记,再接再厉. #include <QDebug> #inclu ...
最新文章
- python2和python3区别
- JAVA 创建线程池
- js实现图片无缝循环跑马灯
- Java Web——图像上传
- 调试CEF3程序的方法
- powershell电脑加域退域
- redhat6.5 yum register 问题
- 插值方法——Lagrange插值公式
- php的cms是什么意思,phpcms是什么
- [转]Android 之 Window、WindowManager 与窗口管理
- lamp里php 的升级,lamp架构之升级php版本
- Kafka单节点多broker的部署和使用
- Apache Kafka 2.7.0 稳定版发布
- android 多进程 坑,Android 开发中踩过的坑之八:多进程问题
- Hive MapJoin OOM
- thinkPHP 表单自动验证功能
- cad插件_CAD插件燕秀工具箱2.81
- 计算机屏显内容超过屏幕了,电脑屏幕超出工作频率范围修复方法
- 浅析汽车芯片信息安全之安全启动
- 北京中医药大学远程教育 计算机基础考试,北京中医药大学远程教育计算机基础(2008版)-第4次...
热门文章
- sudo apt update时 E: 仓库 “http://mirrors.ustc.edu.cn/ros/ubuntu jammy Release” 没有 Release
- 帮你解剖Python的一个轻量级桌面GUI开发第三方库:Eel,让它体无完肤
- 基于Fortran的结构力学位移法编程求解
- 神经网络训练样本的标签,训练图像识别神经网络
- HTML、CSS面试题
- MIT-6.s081-OS Lab: locks
- C# Base64编码、AES等编码加、解密
- C++中 =defaule 和 =delete 使用
- 在IE8中使用建行企业网银的解决方法
- 易语言 网页_取文本_reg的源码