不会卡的摄像头控件TesoSeeu.ocx调用
By
admin
at 2021-11-28 • 1人收藏 • 1601人看过
最近发现videocapx控件调用摄像头会导致usb摄像头显示卡顿 , 以前一直以为usb摄像头电脑上插的多了就是这样, 偶然测试发现并不是, 是控件里面处理的时候貌似有问题.
于是想起来之前用过一个TesoSeeu.ocx控件 , 这个貌似不会卡,
除了没有镜像翻转功能外, 显示是没问题的.
原帖子:https://bbs.aardio.com/forum.php?mod=viewthread&tid=22517
今天测试了下, 确实不会卡画面.... 可惜没有源码, 要不然试试加个镜像功能...
import win.ui;
/*DSG{{*/
mainForm = win.form(text="双摄像头显示演示";right=765;bottom=479)
mainForm.add(
VpWindow={cls="custom";text="custom";left=0;top=0;right=766;bottom=480;bgcolor=8421376;db=1;dl=1;dr=1;dt=1;z=1}
)
/*}}*/
import Vcapocx;
var vpW = Vcapocx(mainForm.VpWindow);
//获取摄像头数量
var cont = vpW.getDevCnt();
if(cont){
vpW.openCapDev(1);
}
mainForm.onClose = function(hwnd,message,wParam,lParam){
//关闭摄像头
vpW.closeCapDev(1);
}
mainForm.enableDpiScaling();
mainForm.show();
return win.loopMessage();多个摄像头的话
import win.ui;
/*DSG{{*/
mainForm = win.form(text="双摄像头显示演示";right=1164;bottom=465)
mainForm.add(
VpWindow={cls="custom";text="custom";left=0;top=0;right=579;bottom=454;bgcolor=8421376;db=1;dl=1;dr=0.5;dt=1;z=1};
VpWindow2={cls="custom";text="custom";left=585;top=0;right=1164;bottom=454;bgcolor=8421376;db=1;dl=0.5;dr=1;dt=1;z=2}
)
/*}}*/
import Vcapocx;
var vpW = Vcapocx(mainForm.VpWindow);
vpW.openCapDev(1);
var vpW2 = Vcapocx(mainForm.VpWindow2);
vpW2.openCapDev(2);
//获取摄像头数量
var cont = vpW.getDevCnt();
mainForm.onClose = function(hwnd,message,wParam,lParam){
//关闭摄像头
vpW.closeCapDev(1);
vpW2.closeCapDev(2);
}
mainForm.enableDpiScaling();
mainForm.show();
return win.loopMessage();不想用库的简易用法:
import com.activeX;
try{
com.CreateObject("{7EEAA4B5-DE19-493F-950C-4053B77195D2}");
}
catch(e){
..com.activeX.appData("\aardio\TesoSeeu.ocx",$"\res\TesoSeeu.ocx")
}
var capx = mainForm.createEmbed("{7EEAA4B5-DE19-493F-950C-4053B77195D2}")._object;
capx.OpenCapDev(1,0);
mainForm.onClose = function(hwnd,message,wParam,lParam){
//关闭摄像头
capx.CloseCapDev(1);
}
6 个回复 | 最后更新于 2025-06-12
the100s
2021-12-21
#1

C#调用这个摄像头ocx , 按照之前将ocx创建net调用的dll , 然后手动绑定到图片框就可以了.
这里唯一需要注意的地方, 就是i下面图片中, 引用dll需要把 [嵌入互操作类型]=False
var AxTeso1 = new AxTESOSEEULib.AxTesoSeeu(); AxTeso1.Dock = DockStyle.Fill; this.pictureBox1.Controls.Add(AxTeso1); AxTeso1.OpenCapDev(0,0);

登录后方可回帖