C# 佳能(Canon)相机EDSDK应用开发(二)--Live view与拍照
来源:互联网 发布:sai mac下载 编辑:程序博客网 时间:2024/04/29 14:05
一、拍照
太EASY了,就这么一句:
EDSDK.EdsSendCommand(camera, EDSDK.CameraCommand_TakePicture, 0);
*注意:相机应确保在MF上。
二、实时预览(Live view)
就是将evf(Electronic Viewfinder--电子取景器)输出到PC上显示。
1、设置输出设备为PC:
uint _data;
EDSDK.EdsDataType _dataType;
int _dataSize;
//先获取原来的EVF输出设备属性的信息
_hr = EDSDK.EdsGetPropertySize(camera, EDSDK.PropID_Evf_OutputDevice, 0, out _dataType, out _dataSize);
_hr = EDSDK.EdsGetPropertyData(this._camera, EDSDK.PropID_Evf_OutputDevice, 0, out _data);
IntPtr _device = new IntPtr();
if (_hr == EDSDK.EDS_ERR_OK)
{
//设置输出到PC
_device = new IntPtr(_data | EDSDK.EvfOutputDevice_PC);
_hr = EDSDK.EdsSetPropertyData(camera, EDSDK.PropID_Evf_OutputDevice, 0, Marshal.SizeOf(_device), _device);
}
2、在UI中显示
*Live view到PC,需要不停的下载图象到PC,所以需要有个线程来做,用ThreadStart类。
private unsafe void DownloadEvfData()
{
//开始实时取景
while (true)
{
IntPtr _stream = IntPtr.Zero;
IntPtr _image = new IntPtr();
IntPtr _imageData = new IntPtr();
uint _imageLen;
if (_hr == EDSDK.EDS_ERR_OK)
{
_hr = EDSDK.EdsCreateMemoryStream(0, out _stream);
}
if (_hr == EDSDK.EDS_ERR_OK)
{
_hr = EDSDK.EdsCreateEvfImageRef(_stream, out _image);
}
//下载
if (_hr == EDSDK.EDS_ERR_OK)
{
//此处需要图象从内存流已经准备好
EDSDK.EdsDownloadEvfImage(this._camera, _image);
}
//显示图象
EDSDK.EdsGetPointer(_stream, out _imageData);
EDSDK.EdsGetLength(_stream, out _imageLen);
UnmanagedMemoryStream ums = new UnmanagedMemoryStream((byte*)_imageData.ToPointer(), _imageLen, _imageLen, FileAccess.Read);
_bmp = new Bitmap(ums, true);
//_picBox是定义的一个pictureBox 控件
_picBox.Image = _bmp;
if (_stream != IntPtr.Zero)
{
EDSDK.EdsRelease(_stream);
_stream = IntPtr.Zero;
}
if (_image != IntPtr.Zero)
{
EDSDK.EdsRelease(_image);
_image = IntPtr.Zero;
}
}
}
- C# 佳能(Canon)相机EDSDK应用开发(二)--Live view与拍照
- 佳能相机的拍照应用开发canon EDSDK C#
- C# 佳能(Canon)相机EDSDK应用开发(一)--基本
- CANON CAMERA SDK 佳能 开发包 下载
- 相机拍照与图库
- canon相机镜头协议
- [转]CANON(佳能)PIXMAMP150清零
- iphone开发 调用相机拍照
- [应用模板]HTML5+PhoneGap相机拍照
- 佳能IXUS105相机拆解图解
- Canon 佳能 PowerShot A630 系列 RAW,显示电量补丁
- 折腾好了家里的老旧打印机--佳能Canon S100sp
- 佳能全系列镜头简评与介绍--详细超过佳能镜头宝典(二)
- 【Android 开发】SufaceView自定义相机拍照
- iOS开发自定义相机(拍照,录制视频)
- Android camera相机开发拍照功能
- Android开发之调用相机拍照与本地图库选择图片
- 调用系统相机拍照与手机图库
- 在Eclipse下使用手机真机调试Android应用 (sony ericsson mt15i semc hsusb device 驱动)
- QMap的使用
- 正则学习
- FLASH水波纹效果动画制作教程图文自编
- C# 佳能(Canon)相机EDSDK应用开发(一)--基本
- C# 佳能(Canon)相机EDSDK应用开发(二)--Live view与拍照
- Linux各发行版本简介
- 新电脑调试记录
- Android 中自定义控件和属性(attr.xml,declare-styleable,TypedArray)的方法和使用
- IOS之Objective-C学习笔记(二)
- 2012年4月份编程语言排行榜
- Android declare-styleable:自定义控件的属性(attr.xml,TypedArray)的使用
- declare-styleable的使用
- Linux基础