コード例 #1
0
ファイル: TimeLine.cs プロジェクト: UzairTahir/sampleCode
        public void UpdateCameraStip(CameraTimeInfo cam)
        {
            if (cam.timeIntervals[cam.timeIntervals.Count - 1].endTime.Subtract(main.endTime).TotalMilliseconds > 0)
            {
                main.endTime = cam.timeIntervals[cam.timeIntervals.Count - 1].endTime.AddMinutes(2);
            }


            foreach (PictureBox pb in pnlTimeLine.Controls)
            {
                if (((CameraTimeInfo)pb.Tag).Equals(cam))
                {
                    Image img = pb.Image;

                    using (Graphics g = Graphics.FromImage(img))
                    {
                        // Draw horizontal line
                        g.DrawLine(new Pen(Color.Black, 1), new Point(0, img.Height / 2), new Point(img.Width, img.Height / 2));

                        // Draw strip time periods
                        foreach (TimeInterval ti in cam.timeIntervals)
                        {
                            Point startPoint = new Point((int)(((ti.startTime.Subtract(main.startTime).TotalSeconds) / (float)(main.endTime.Subtract(main.startTime)).TotalSeconds) * img.Width), img.Height / 4);
                            Size  size       = new Size((int)(((ti.endTime.Subtract(ti.startTime).TotalSeconds) / (float)(main.endTime.Subtract(main.startTime).TotalSeconds)) * img.Width), img.Height / 2);
                            g.FillRectangle(new SolidBrush(cam.color), new Rectangle(startPoint, size));
                        }
                    }
                    pb.Image = img;
                    break;
                }
            }
        }
コード例 #2
0
        private void GenerateVideo()
        {
            Application.Idle -= ProcessFrame;

            MessageBox.Show("Generating Video");
            List <Interval>       I    = new List <Interval>();
            List <CameraTimeInfo> cams = track.cameraList;

            SQLManager sql = new SQLManager();

            while (true)
            {
                int            index = -1;
                bool           check = true;
                CameraTimeInfo min   = cams[0];
                for (int i = 0; i < cams.Count; i++)
                {
                    if (cams[i].timeIntervals.Count > 1)
                    {
                        index = i;
                        min   = cams[i];
                        break;
                    }
                }
                if (index == -1)
                {
                    break;
                }
                for (int i = 0; i < cams.Count; i++)
                {
                    if (cams[i].timeIntervals.Count > 1)
                    {
                        if (cams[i].timeIntervals[0].startTime < min.timeIntervals[0].startTime)
                        {
                            min   = cams[i];
                            index = i;
                        }
                    }
                }

                I.Add(new Interval(cams[index].cameraName, cams[index].timeIntervals[0].startTime, cams[index].timeIntervals[0].endTime));
                cams[index].timeIntervals.RemoveAt(0);
            }



            string output = VideoGeneration.GenerateVideo(I);
        }
コード例 #3
0
ファイル: TimeLine.cs プロジェクト: UzairTahir/sampleCode
        public void DrawCameraStrip(CameraTimeInfo cam)
        {
            if (cam.timeIntervals[cam.timeIntervals.Count - 1].endTime.Subtract(main.endTime).TotalMilliseconds > 0)
            {
                main.endTime = cam.timeIntervals[cam.timeIntervals.Count - 1].endTime.AddMinutes(2);
            }

            int heightOfstrip = 32;
            int widthOfstrip  = 512;

            Bitmap img = new Bitmap(widthOfstrip, heightOfstrip);

            using (Graphics g = Graphics.FromImage(img))
            {
                // Draw horizontal line
                g.DrawLine(new Pen(Color.Black, 1), new Point(0, img.Height / 2), new Point(img.Width, img.Height / 2));

                // Draw strip time periods
                foreach (TimeInterval ti in cam.timeIntervals)
                {
                    Point startPoint = new Point((int)(((ti.startTime.Subtract(main.startTime).TotalSeconds) / (float)(main.endTime.Subtract(main.startTime)).TotalSeconds) * img.Width), img.Height / 4);
                    Size  size       = new Size((int)(((ti.endTime.Subtract(ti.startTime).TotalSeconds) / (float)(main.endTime.Subtract(main.startTime).TotalSeconds)) * img.Width), img.Height / 2);
                    g.FillRectangle(new SolidBrush(cam.color), new Rectangle(startPoint, size));
                }
            }


            // Add PictureBox
            PictureBox pb = new PictureBox();

            pb.Size      = new Size(widthOfstrip, heightOfstrip);
            pb.Dock      = DockStyle.Bottom;
            pb.BackColor = Color.FromArgb(53, 66, 75);
            pb.Image     = img;
            pb.SizeMode  = PictureBoxSizeMode.StretchImage;
            pnlTimeLine.Controls.Add(pb);
            pb.MouseEnter += delegate(System.Object o, System.EventArgs e) { pb.BackColor = Color.FromArgb(43, 56, 65); };
            pb.MouseLeave += delegate(System.Object o, System.EventArgs e) { pb.BackColor = Color.FromArgb(53, 66, 75); };
            pb.Tag         = cam;
        }