delphi dxCameraControl控件(拍照)

news/2024/9/21 20:47:24/文章来源:https://www.cnblogs.com/xionda/p/18379016
拍照演示
DevExpressVCL 组件之一
 
TdxCameraControl Object
Hierarchy   Properties   Methods   Events
 
一个摄像头控件
Unit dxCameraControl
 
Syntax
 
TdxCameraControl = class(TdxCustomCameraControl)
 
Descrition
 
该控件允许您捕捉视频或图像从内置/连接的网络摄像头或设备、前后摄像头。也可以访问指定的摄像头,并可以预览;
 
该控件实现与摄像机相关联的基本功能。它使用允许您执行以下操作:
 
 
 
可以指定图像/视频捕获的摄像机,并获取其名称:(DeviceIndex和DeviceName)。
 
可以控制摄像机的视频:活动、暂停、播放和停止 (Active, Pause, Play, Stop).
 
会列出来支持的摄像机分辨率,用户可以选择一个分辨率或者分辨率索引用于输出:(Resolutions 和ResolutionIndex).
 
可以缩放渲染图像(FitMode)。
 
捕获截屏当前渲染的图像并访问它:(Capture 和 CapturedBitmap).
 
获取控件的当前状态,以及状态更改事件(state和OnStateChanged)。
 
启用设置按钮,提供用户对弹出菜单的访问,您也可以以编程方式调用该菜单(ShowSettingsButton和ShowSettingsToolbar)。
 
TdxCameraControl Properties(属性)
TdxCameraControl   Legend
 
Derived from TdxCustomCameraControl      
 
Active      激活控件
 
BorderStyle      控件的边框风格
 
CapturedBitmap      捕捉的图像
 
DeviceIndex      摄像头设备索引
 
DeviceName      当前摄像头的名字
 
FitMode      填充模式
 
ResolutionCount      返回当前访问的摄像机支持的分辨率数目
 
ResolutionIndex      返回当前分辨率的索引
 
Resolutions      分辨率
 
State      控件当前的状态
 
ShowSettingsButton  是否显示设置按钮
 
TdxCameraControl Methods(方法)
TdxCameraControl   Legend
 
Derived from TdxCustomCameraControl      
 
Capture      从当前摄像头捕获一张图片
 
Pause      使当前摄像头处于暂停状态
 
Play         使当前摄像头处于预览输出状态
 
ShowSettingsToolbar      调用设置弹出菜单。
 
Stop  停止渲染从摄像头获得的输出帧,使摄像头处于不激活的状态。
 
 
TdxCustomCameraControl Events(事件)
TdxCustomCameraControl   Legend
 
In TdxCustomCameraControl      
 
OnStateChanged  控件状态发生变化时 
 
TdxCustomCameraControl.DeviceIndex
TdxCustomCameraControl
 
通过索引指定当前控件的摄像头处于激活;
 
Syntax
 
property DeviceIndex: Integer;
 
Description
 
控件是通过在设备管理器中注册的摄像机列表(也称为网络摄像机或成像设备)中的索引来识别的。默认情况下,控件被设置为访问列表中的第一个相机。如果注册了多个摄像机,可以使用DeviceIndex属性选择所需的摄像机。
 
终端用户可以使用控件的设置弹出菜单中的设备子菜单在相机之间切换。
 
TdxCustomCameraControl.State
TdxCustomCameraControl
 
Indicates the camera control‘s current state.Syntax
 
 
 
type  TdxCameraControlState = (ccsInactive, ccsInitializing, ccsRunning, ccsPaused, ccsNoDevice, ccsDeviceIsBusy);property State: TdxCameraControlState;
 
 
Description
 
Values include:
 
 
 
ValueDescription
ccsInactive摄像机控制处于非活动状态。该状态对应sdxCameraInactive。除此之外,所有其他状态都与摄像机控制有关。
ccsInitializing摄像机控件正在初始化以捕获或呈现摄像机输出。此状态对应于sdxCameraInitializing。
ccsRunning控件在其表面呈现摄像机的输出。(预览) 
ccsPaused摄像头处于暂停状态
ccsNoDevice相机控件无法找到所选相机或当前已关闭。此状态对应sdxcameranotdetection。
ccsDeviceIsBusy设备处于锁定状态。    
 
这是个只读属性。
 
 
Active:True
 
DeviceIndex:设备号,默认为0
 
其他方法
 
procedure Capture; //捕获
procedure Pause; //暂停
procedure Play; //播放
procedure Stop; //停止
property State: TdxCameraControlState read FState; //设备状态
设计界面
技术图片

 

 

代码
 
复制代码
//拍照并在cxImage中显示
procedure TForm1.Button1Click(Sender: TObject);
begin
  dxCameraControl1.Capture;
  cxImage1.Picture.Assign(dxCameraControl1.CapturedBitmap);
end;
//保存图片
procedure TForm1.Button3Click(Sender: TObject);
begin
  if SavePictureDialog1.Execute then
  begin
    cxImage1.Picture.SaveToFile(SavePictureDialog1.FileName);
  end;
end;
复制代码
拍照演示
技术图片

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/787089.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sentinel-服务接入原理

通过sentinel前世今生介绍,我们知道了sentinel流控主要是依赖sentinel-core,但是我们生产环境往往需要动态更新流控规则所以需要集成nacos、zookeeper、redis、mysql、等中间存储。配置的复杂性和规则的复杂性我们需要可视化的方式对规则进行管理,我们需要集成dashboard。 这…

*2024.8.25 鲜花

没啥文采,写的不好。NTERNET OVERDOSE この混沌とした 令和のインターネットを照らす 一筋の光 電子の海を漂うオタクに笑顔を 未来の平和をお約束 躁鬱だけどまかせとけ インターネット・エンジェル ただいま降臨 社会をやめろ 家族をやめろ 人間関係をやめろ 今すぐ薄暗い部…

5分钟说透chatgpt

5分钟说清楚 ——到底它为啥能这么火? ——到底牛逼在哪? ——到底我能用来干嘛?把“他”想象成一个博览群书的人 想象一下,现在有一个知识非常渊博的一个人,博览群书,掌握了绝大多数的人类文本知识。(没错,chatgpt确实就是掌握了这么多,而且随着模型的增长,他会看更…

sentinel-前世今生

方便理解sentinel,假如我们自己要实现一套sentinel sentinel前世今生 方便理解sentinel,假如我们自己要实现一套sentinel 第一阶段 一心助手业务服务出现异常,通过监控大盘,发现超过自身服务能够承载的流量,导致请求出现大量排队,服务阻塞,进而导致其他依赖服务出现雪崩效应…

2024.8.25 鲜花

没啥文采,写的不好。NTERNET OVERDOSE この混沌とした 令和のインターネットを照らす 一筋の光 電子の海を漂うオタクに笑顔を 未来の平和をお約束 躁鬱だけどまかせとけ インターネット・エンジェル ただいま降臨 社会をやめろ 家族をやめろ 人間関係をやめろ 今すぐ薄暗い部…

zabbix-grafana配置

一、grafana 安装配置 安装grafana # yum install -y https://dl.grafana.com/oss/release/grafana-11.1.4-1.x86_64.rpm启动grafana # systemctl start grafana-servergrafana 在线安装 zabbix 插件,重启grafana服务 # grafana-cli plugins list-remote | grep -i zabbix id:…

Neo-GNNs: Neighborhood Overlap-aware Graph Neural Networks for Link Prediction

目录概符号说明MotivationNeo-GNN代码Neo-GNNs: Neighborhood overlap-aware graph neural networks for link prediction. NeurIPS, 2021.概 一种计算上相对高效的, 同时利用结构信息和特征信息的链接预测模型. 符号说明\(\mathcal{G} = (\mathcal{V}, \mathcal{E})\), graph;…

Thanos HA

ThanosHA组件HA组件Sidercar Receiver其它组件Querier Store Compactor RulerSidecar & Receiver工作方式Sidecar 为实现高可用,Sidecar组件与Prometheus运行在一个Pod中,双副本的Prometheus独立运行采集数据(scrape metrics),默认情况部署在Kubernetesk的Prometheus使…

063、Vue3+TypeScript基础,作用域插槽的使用

01、main.js代码如下:// 引入createApp用于创建Vue实例 import {createApp} from vue // 引入App.vue根组件 import App from ./App.vue// 引入emitter用于全局事件总线 // import emitter from @/utils/emitterconst app = createApp(App);// App.vue的根元素id为app app.mou…

使用AI识别语音和B站视频并通过GPT生成思维导图

AI脑图除了对文本、网页链接和文件生成思维导图外,现在也支持了对语音和B站视频的内容识别,并自动生成思维导图。AI脑图除了对文本、网页链接和文件生成思维导图外,现在也支持了对语音和B站视频的内容识别,并自动生成思维导图。 语音生成思维导图 直接发送语音:对AI脑图公…

C++函数调用栈从何而来

竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生~个人主页:rainInSunny | 个人专栏:C++那些事儿、Qt那些事儿目录写在前面原理综述x86架构函数调用栈分析如何获取rbp寄存器的值总结 写在前面程序员对函数调用栈是再熟悉不过了,无论是使用IDE调试还是GDB等工具进行调试,都离不开函数…

[COCI2017-2018#5] Planinarenje

这道题目是二分图博弈的板子 介绍一下二分图博弈:设两部的节点分别为\(x_1,x_2,...,x_n\)和\(y_1,y_2,...,y_m\),先手选择了\(x_i\)这个节点,则先手必胜当且仅当\(x_i\)是最大匹配的必须点(也就是说少了\(x_i\)的话最大匹配数会减少) 证明: 任选一个最大匹配,则\(x_i\)为…