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) { } }
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) { } } }
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) { } } }