private void loadCurrentImageAnnotations()
        {
            if (capture.Position == capture.Length)
            {
                return;
            }

            drawingManager.Clear();

            frame = capture.ReadAs <Bgr, byte>(); //the order is relevant (position is automatically increased)
            var imageKey = getCurrentImageKey();

            if (Database.ContainsKey(imageKey))
            {
                drawingManager.AddRange(Database[imageKey]);
            }

            this.pictureBox.Image = frame.ToBitmap();
            pictureBox.Update();

            this.Text                 = getCurrentImageKey() + " -> " + new FileInfo(databaseFileName).Name;
            this.slider.Value         = (int)Math.Max(0, this.capture.Position - 1);
            this.slider.Maximum       = (int)(capture.Length - 1);
            this.lblCurrentFrame.Text = this.slider.Value.ToString();
            this.lblTotalFrames.Text  = this.slider.Maximum.ToString();
        }
Пример #2
0
    public void NewButtonPressed()
    {
        // clear path
        drawingManager.Clear();

        // set mode
        ChangeMode(ModeStatus.Drawing);
    }
Пример #3
0
        /// <summary>
        /// メインフォーム
        /// </summary>
        public DrawingForm()
        {
            InitializeComponent();
            this.DoubleBuffered = true;

            var drawingManager = new DrawingManager(new RectanglePen(Color.Blue));

            drawingManager.Start(this, MouseButtons.Left);

            var gesture = new MouseGesture();

            gesture.DirectionCaptured += (o, e) => this.Text = e.Gesture;
            gesture.Add("→←→",
                        () =>
            {
                drawingManager.Clear();
                this.Text = "クリア";
                this.Refresh();
            });
            gesture.Add("↑↓",
                        () =>
            {
                drawingManager.DefaultItem = new EllipsePen(Color.Red);
                this.Text = "楕円";
                this.Refresh();
            });
            gesture.Add("↑→↓←",
                        () =>
            {
                drawingManager.DefaultItem = new RectanglePen(Color.Blue);
                this.Text = "四角形";
                this.Refresh();
            });
            gesture.Add("↓→↑",
                        () =>
            {
                drawingManager.DefaultItem = DrawingManager.Selector;
                this.Text = "選択";
                this.Refresh();
            });
            gesture.Start(this, MouseButtons.Right, 30);


            this.Paint += (o, e) => drawingManager.Draw(e.Graphics);
        }