示例#1
0
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                if (dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString() == "Video")
                {
                    AForge.Video.FFMPEG.VideoFileReader reader = new AForge.Video.FFMPEG.VideoFileReader();
                    reader.Open(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());

                    Bitmap videoFrame_left;
                    Bitmap videoFrame_right;
                    videoFrame_left       = reader.ReadVideoFrame();
                    left_pictureBox.Image = videoFrame_left;

                    reader.Open(dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString());

                    videoFrame_right       = reader.ReadVideoFrame();
                    right_pictureBox.Image = videoFrame_right;

                    anaglyphImage             = this.mainForm.apply3D2(videoFrame_left, videoFrame_right, color);
                    anaglyph_pictureBox.Image = anaglyphImage;
                }
                else
                {
                    left_pictureBox.Image     = (Bitmap)Image.FromFile(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());
                    right_pictureBox.Image    = (Bitmap)Image.FromFile(dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString());
                    anaglyph_pictureBox.Image = this.mainForm.apply3D2((Bitmap)Image.FromFile(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString()), (Bitmap)Image.FromFile(dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString()), dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString());
                }
            }
            catch (Exception ex) { }
        }
示例#2
0
        private void right_button_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter = "jpg (*.jpg)|*.jpg|bmp (*.bmp)|*.bmp|png (*.png)|*.png|avi (*.avi)|*.avi";
            AForge.Video.FFMPEG.VideoFileReader reader = new AForge.Video.FFMPEG.VideoFileReader();
            //AForge.Video.FFMPEG.VideoFileWriter writer = new AForge.Video.FFMPEG.VideoFileWriter();

            if (ofd.ShowDialog() == DialogResult.OK && ofd.FileName.Length > 0)
            {
                string ext = Path.GetExtension(ofd.FileName);

                if (ext == ".avi")
                {
                    reader.Open(ofd.FileName);


                    try
                    {
                        Bitmap videoFrame = reader.ReadVideoFrame();
                        right_pictureBox.Image = videoFrame;
                        rightImage             = videoFrame;
                        rightpath = ofd.FileName.ToString();
                        datatype  = "Video";
                    }
                    catch (Exception ex) { }
                }
                else
                {
                    right_pictureBox.Image = Image.FromFile(ofd.FileName);
                    rightImage             = (Bitmap)Image.FromFile(ofd.FileName);
                    rightpath = ofd.FileName.ToString();
                    datatype  = "Image";
                }
                right_pictureBox.SizeMode = PictureBoxSizeMode.Zoom;


                try
                {
                    anaglyphImage             = this.mainForm.apply3D2(leftImage, rightImage, color);
                    anaglyph_pictureBox.Image = anaglyphImage;
                }
                catch (Exception ex) { }
            }
        }
示例#3
0
        private void save3D_button_Click(object sender, EventArgs e)
        {
            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Filter = "jpg (*.jpg)|*.jpg|bmp (*.bmp)|*.bmp|png (*.png)|*.png|avi (*.avi)|*.avi";



            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                try
                {
                    if (row.Cells[3].Value.ToString() == "Video")
                    {
                        sfd.FileName = "Anaglyph_video";
                        AForge.Video.FFMPEG.VideoFileReader reader_left  = new AForge.Video.FFMPEG.VideoFileReader();
                        AForge.Video.FFMPEG.VideoFileReader reader_right = new AForge.Video.FFMPEG.VideoFileReader();
                        reader_left.Open(row.Cells[0].Value.ToString());
                        reader_right.Open(row.Cells[1].Value.ToString());

                        int    width      = reader_left.Width;
                        int    height     = reader_left.Height;
                        int    frameRate  = reader_left.FrameRate;
                        long   frameCount = reader_left.FrameCount;
                        string codecName  = reader_left.CodecName;

                        AForge.Video.FFMPEG.VideoFileWriter writer = new AForge.Video.FFMPEG.VideoFileWriter();

                        if (sfd.ShowDialog() == DialogResult.OK && sfd.FileName.Length > 0)
                        {
                            string fileName = sfd.FileName;
                            writer.Open(fileName, width, height, frameRate, AForge.Video.FFMPEG.VideoCodec.Default, 30);

                            Bitmap image = new Bitmap(width, height, PixelFormat.Format24bppRgb);
                            // write 1000 video frames
                            for (int i = 0; i < (int)frameCount; i++)
                            {
                                try
                                {
                                    Bitmap videoFrame_left  = reader_left.ReadVideoFrame();
                                    Bitmap videoFrame_right = reader_left.ReadVideoFrame();
                                    Bitmap anaglyph_vid     = mainForm.apply3D2(videoFrame_left, videoFrame_right, row.Cells[2].Value.ToString());
                                    writer.WriteVideoFrame(anaglyph_vid);
                                }
                                catch (Exception ex) { }
                            }

                            writer.Close();
                        }
                    }
                    else
                    {
                        sfd.FileName = "Anaglyph_image";
                        string left       = row.Cells[0].Value.ToString();
                        Bitmap left_save  = new Bitmap(left);
                        string right      = row.Cells[1].Value.ToString();
                        Bitmap right_save = new Bitmap(right);
                        string type       = row.Cells[2].Value.ToString();
                        Bitmap ana_save   = mainForm.apply3D2(left_save, right_save, row.Cells[2].Value.ToString());

                        if (sfd.ShowDialog() == DialogResult.OK && sfd.FileName.Length > 0)
                        {
                            ana_save.Save(sfd.FileName);
                        }
                    }
                }
                catch (Exception ex) { }
            }
        }