示例#1
0
        /// <summary>
        /// Realiza conexão com o dispositivo de câmera.
        /// </summary>
        /// <param name="cameraInfo">Dispositivo de câmera a ser conectado.</param>
        /// <returns>True, se a conexão foi estabelecida e false, caso contrário.</returns>
        public bool ConnectToDevice(WIACameraInfo cameraInfo)
        {
            // cria um novo gerenciador de dispositivos
            WIA.DeviceManagerClass deviceMgr = new WIA.DeviceManagerClass();

            try
            {
                // flag para indicar se encontrou ou não o dispositivo
                bool foundDevice = false;

                // procura pelo dispositivo
                foreach (WIA.DeviceInfo deviceInfo in deviceMgr.DeviceInfos)
                {
                    if (deviceInfo.DeviceID == cameraInfo.DeviceID)
                    {
                        // tenta conexão com o dispositivo
                        this.connectedDevice = deviceInfo.Connect();
                        foundDevice          = true;
                        break;
                    }
                }

                // verifica se encontrou dispositivo
                return(foundDevice);
            }
            catch
            {
                return(false);
            }
        }
示例#2
0
        /// <summary>
        /// Lista dispositivos de câmera conectados ao computador.
        /// </summary>
        /// <returns>Uma lista com as informações de cada dispositivo.</returns>
        public static List <WIACameraInfo> ListConnectedDevices()
        {
            // cria lista
            List <WIACameraInfo> cameraInfoList = new List <WIACameraInfo>();

            // cria um novo gerenciador de dispositivos
            WIA.DeviceManagerClass deviceMgr = new WIA.DeviceManagerClass();

            // loop nos dispositivos
            foreach (DeviceInfo deviceInfo in deviceMgr.DeviceInfos)
            {
                // verifica o tipo de dispositivo (somente câmeras)
                if (deviceInfo.Type == WiaDeviceType.CameraDeviceType)
                {
                    // busca pela propriedade que contém a descrição do dispositivo
                    foreach (Property deviceProperty in deviceInfo.Properties)
                    {
                        if (deviceProperty.Name == "Description")
                        {
                            // adiciona na lista
                            cameraInfoList.Add(new WIACameraInfo(deviceInfo.DeviceID, deviceProperty.get_Value().ToString()));
                        }
                    }
                }
            }

            // retorna lista
            return(cameraInfoList);
        }
示例#3
0
        public WIA.ImageFile ScanAndSaveOnePage()
        {
            WIA.CommonDialog  Dialog1        = new WIA.CommonDialogClass();
            WIA.DeviceManager DeviceManager1 = new WIA.DeviceManagerClass();
            System.Object     Object1        = null;
            System.Object     Object2        = null;
            WIA.Device        Scanner        = null;

            try
            {
                Scanner = Dialog1.ShowSelectDevice(WIA.WiaDeviceType.ScannerDeviceType, false, false);
            }
            catch
            {
                MessageBox.Show("请确认是否联系设备");
                return(null);

                throw;
            }
            WIA.Item Item1 = Scanner.Items[1];
            setItem(Item1, "4104", 24);
            setItem(Item1, "6146", 2);
            setItem(Item1, "6147", 150);
            setItem(Item1, "6148", 150);
            setItem(Item1, "6151", 150 * 8.5);
            setItem(Item1, "6152", 150 * 11);

            WIA.ImageFile    Image1        = new WIA.ImageFile();
            WIA.ImageProcess ImageProcess1 = new WIA.ImageProcess();
            Object1 = (Object)"Convert";
            ImageProcess1.Filters.Add(ImageProcess1.FilterInfos.get_Item(ref Object1).FilterID, 0);

            Object1 = (Object)"FormatID";
            Object2 = (Object)WIA.FormatID.wiaFormatBMP;
            ImageProcess1.Filters[1].Properties.get_Item(ref Object1).set_Value(ref Object2);

            Object1 = null;
            Object2 = null;

            Image1 = (WIA.ImageFile)Item1.Transfer(WIA.FormatID.wiaFormatBMP);

            return(Image1);

            //string DestImagePath = @"C:\test.bmp";
            //File.Delete(DestImagePath);
            //Image1.SaveFile(DestImagePath);
        }