示例#1
0
        public MainWin()
        {
            Text = Application.ProductName;
            ClientSize = new Size(600, 600*3/4);

            preview = new PreviewWin();

            cam = null;
            stillImageObj = null;
            storageObj = null;
            img = null;
            taking = false;
            imgSaveFolder = Environment.GetFolderPath(Environment.SpecialFolder.Personal);

            captureTimeout = new Timer();
            captureTimeout.Interval = 1000;
            captureTimeout.Tick += new EventHandler(CaptureTimeout);

            panel = new TableLayoutPanel();
            //panel.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single;
            panel.Dock = DockStyle.Fill;
            Controls.Add(panel);

            cbCamera = new ComboBox();
            cbCamera.DropDownStyle = ComboBoxStyle.DropDownList;
            cbCamera.SelectedIndexChanged += new EventHandler(CameraChanged);
            panel.Controls.Add(cbCamera, 0, 0);

            btnRefresh = new Button();
            btnRefresh.Text = "Refresh";
            btnRefresh.FlatStyle = FlatStyle.System;
            btnRefresh.Click += new EventHandler(RefreshDevicesOnClick);
            panel.Controls.Add(btnRefresh, 1, 0);

            btnTake = new Button();
            btnTake.Text = "Take Picture";
            btnTake.FlatStyle = FlatStyle.System;
            btnTake.Click += new EventHandler(TakePicture);
            panel.Controls.Add(btnTake, 2, 0);

            btnSave = new Button();
            btnSave.Text = "Save Picture";
            btnSave.FlatStyle = FlatStyle.System;
            btnSave.Click += new EventHandler(SavePicture);
            panel.Controls.Add(btnSave, 3, 0);

            btnClear = new Button();
            btnClear.Text = "Clear Display";
            btnClear.FlatStyle = FlatStyle.System;
            btnClear.Click += new EventHandler(ClearPicture);
            panel.Controls.Add(btnClear, 4, 0);

            pb = new PictureBox();
            pb.Dock = DockStyle.Fill;
            pb.SizeMode = PictureBoxSizeMode.Zoom;
            pb.DoubleClick += new EventHandler(TakePicture);
            panel.Controls.Add(pb, 0, 1);
            panel.SetColumnSpan(pb, 5);

            panel.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));
            panel.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));
            panel.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));
            panel.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));

            RefreshDevices();
            RefreshButtons();
        }
示例#2
0
        void DevRemoved(object sender, WPD.PortableDeviceEventArgs e)
        {
            stillImageObj = null;
            storageObj = null;
            cam = null;

            RefreshDevices();
        }
示例#3
0
        void DevReset(object sender, WPD.PortableDeviceEventArgs e)
        {
            WPD.PortableDeviceCategory stillImageCat = cam.GetCategory(WPD.FunctionCategory.StillImageCapture);
            stillImageObj = stillImageCat.Functions[0] as WPD.StillImageObject;

            WPD.PortableDeviceCategory storageCat = cam.GetCategory(WPD.FunctionCategory.Storage);
            storageObj = storageCat.Functions[0] as WPD.StorageObject;

            CreateInitialState();
            RefreshButtons();
        }
示例#4
0
        void CameraChanged(object sender, EventArgs e)
        {
            cam = cbCamera.SelectedItem as WPD.PortableDevice;
            if (cam == null)
            {
                stillImageObj = null;
                storageObj = null;
                return;
            }

            cam.DeviceRemoved += new WPD.PortableDeviceEventHandler(DevRemoved);
            cam.DeviceReset += new WPD.PortableDeviceEventHandler(DevReset);
            cam.ObjectAdded += new WPD.PortableDeviceEventHandler(ObjAdded);
            cam.ObjectRemoved += new WPD.PortableDeviceEventHandler(ObjRemoved);
            cam.StorageFormat += new WPD.PortableDeviceEventHandler(StgFormat);

            WPD.PortableDeviceCategory stillImageCat = cam.GetCategory(WPD.FunctionCategory.StillImageCapture);
            stillImageObj = stillImageCat.Functions[0] as WPD.StillImageObject;

            WPD.PortableDeviceCategory storageCat = cam.GetCategory(WPD.FunctionCategory.Storage);
            storageObj = storageCat.Functions[0] as WPD.StorageObject;

            CreateInitialState();
            RefreshButtons();
        }