За основу были взяты материалы из публикации //infostart.ru/public/177082/
Изменения в компоненте были сделаны для того что бы можно было удобно напрямую из 1С управлять списком активных камер и их возможным разрешением работы.
Добавлена переменная CamList, массив текстовых значений, заполняется при включении камеры. Формат строки: Наименование камеры;КоординатаХ;КоординатаУ
Добавлена Процедура CamON (НаименованиеКамеры, КоординатаХ,КоординанаУ) Процедура включает камеру в выбранно режиме работы. Если не передавать значения разрешения, включается в максимально возможном.
Изменения в компоненте:
public FilterInfoCollection videoDevices;
public Object CamList;
public void GetCamList()
{
String temp;
ListMassCamString = new List();
videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
for (int vid_count = 0; vid_count < videoDevices.Count; vid_count++)
{
VideoCaptureDevice videoSource = new VideoCaptureDevice(videoDevices[vid_count].MonikerString);
for (int cid_count = 0; cid_count < videoSource.VideoCapabilities.Length; cid_count++)
{
temp = «» + videoDevices[vid_count].Name + «;» + videoSource.VideoCapabilities[cid_count].FrameSize.Width + «;» + videoSource.VideoCapabilities[cid_count].FrameSize.Height + «»;
MassCamString.Add(temp);
}
}
CamList = MassCamString.ToArray();
}
public void CamON(String CamName, int X = 0, int Y = 0)
{
videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
for (int vid_count = 0; vid_count
{
if (videoDevices[vid_count].Name == CamName)
{
VideoCaptureDevice videoSource = new VideoCaptureDevice(videoDevices[vid_count].MonikerString);
if (X != 0 & Y != 0)
{
videoSource.DesiredFrameSize = new Size(X, Y);
}
OpenVideoSource(videoSource);
break;
}
}
}
Спасибо! Пригодиться.
Под Win7 х64 будет работать?
{Форма.Форма.Форма(4)}: Поле объекта не обнаружено (CamList)
CamList = ЭлементыФормы.ЭлементУправления1.CamList;