AddFrame() public method

Add new frame to the AVI file.

The method adds new video frame to an opened video file. The width and heights of the frame should be the same as it was specified in Open method (see Width and Height properties).

Thrown if no video file was open. Bitmap size must be of the same as video size, which was specified on opening video file. A error occurred while writing new video frame. See exception message.
public AddFrame ( Bitmap frameImage ) : void
frameImage System.Drawing.Bitmap New frame image.
return void
Ejemplo n.º 1
0
 private void video_NewFrame(object sender, NewFrameEventArgs eventArgs) //обработчик события NewFrame
 {
     if (!stopzapis)
     {
         Bitmap img = (Bitmap)eventArgs.Frame.Clone();
         writer.AddFrame(img);
     }
 }
Ejemplo n.º 2
0
        static void Main()
        {
            AVIWriter writer = new AVIWriter("xvid");
            // instantiate AVI reader
            AVIReader reader = new AVIReader();
            // open video file
            reader.Open("test2.avi");
            // create new AVI file and open it
            writer.Open("testOut2.avi", reader.Width, reader.Height);

            //WebClient webClient = new WebClient();
            //webClient.DownloadFile("http://maps.googleapis.com/maps/api/staticmap?center=-15.800513,-47.91378&zoom=11&size=200x200&sensor=false", @"C:\Users\GaliaTodorova\Dropbox\Telerik_wf\OOP\TeamWork\test.png");



            //Bitmap flag = new Bitmap(@"C:\Users\GaliaTodorova\Dropbox\Telerik_wf\OOP\TeamWork\test.png");  //galia
            //Bitmap toFrame = new Bitmap(flag, new Size(reader.Width, reader.Height));
            //toFrame.MakeTransparent();
            // read the video file
            while (reader.Position - reader.Start < reader.Length)
            {
                // get next frame
                Bitmap image = reader.GetNextFrame();
                for (int t = 0; t < reader.Position - reader.Start; t++)
                {
                    /*using (Graphics grfx = Graphics.FromImage(image))
                    {
                     grfx.DrawImage(flag, 0, 0);
                    }*/
                    if (t >= reader.Width)
                        break;
                    int y = (int)(reader.Height / 2 + Math.Sin(((float)t) / 50) * reader.Height / 3);
                    image.SetPixel(t, y - 1, Color.Red);
                    image.SetPixel(t, y, Color.Red);
                    image.SetPixel(t, y + 1, Color.Red);
                }
                writer.AddFrame(image);
            }
            reader.Close();
            writer.Close();
        }
Ejemplo n.º 3
0
        public static void VidTest()
        {
            List<Bitmap> frames = new List<Bitmap>();

            AVIWriter aw = new AVIWriter("DIB ");
            aw.FrameRate = 15;
            aw.Open("test2.avi",320,240);
            int i = 0;
            string surl = "";
            MJPEGStream ms = new MJPEGStream();
            ms.Login = "";
            ms.Password = "";
            ms.Source = surl;
            ms.NewFrame += (sender, e) =>
            {
                i++;
                //frames.Add(e.Frame);
                aw.AddFrame(e.Frame);
                e.Frame.Save("test" + i.ToString() + ".jpg", ImageFormat.Jpeg);

            //	            ((MJPEGStream)sender).Stop();
            };

            ms.Start();
            System.Threading.Thread.Sleep(4000);
            ms.Stop();
            aw.Close();

            //
        }
Ejemplo n.º 4
0
        public void hide(byte[] mbyte, bool bitLSB)
        {
            //Message to BitArray
            BitArray bitarray = new BitArray(mbyte);
            //bool[] bools = new bool[200000];
            //byte[] bytes = new byte[200000];

            //Convert key to seed
            byte[] k_ = Encoding.ASCII.GetBytes(key);
            Int32 seed = 0;
            foreach(byte b_ in k_)
            {
                seed += b_;
            }

            //Get all frame from .avi
            bitmapL = new List<Bitmap>();
            while(reader.Position - reader.Start < reader.Length)
            {
                bitmapL.Add(reader.GetNextFrame());
            }

            //Find frame and pixel position
            Random rand = new Random(seed);
            //for(int i = bitarray.Length-1; i > -1; i--)
            for (int i = 0; i < bitarray.Length; i++)
            {
                int frameIdx = rand.Next(reader.Length);
                int x = rand.Next(reader.Width);
                int y = rand.Next(reader.Height);

                Bitmap frame = bitmapL.ElementAt(frameIdx);
                Color c = frame.GetPixel(x,y);

                //mode 1-LSB
                if (bitLSB)
                {
                    byte byteb = c.B;
                    if (bitarray.Get(i)) byteb = (byte)((byteb & MED) | (HEX_1));
                    else byteb = (byte)((byteb & MED) | (HEX_0));
                    frame.SetPixel(x, y, Color.FromArgb(c.R, c.G, byteb));
                    //c = frame.GetPixel(x, y);
                    //bools[i] = c.B % 2 == 1; bytes[i] = c.B;
                }
                else
                //mode 2-LSB
                {
                    byte byteb = c.B;
                    byte byteg = c.G;
                    if (bitarray.Get(i)) byteb = (byte)((byteb & MED) | (HEX_1));
                    else byteb = (byte)((byteb & MED) | (HEX_0));
                    i++;
                    if (bitarray.Get(i)) byteg = (byte)((byteg & MED) | (HEX_1));
                    else byteg = (byte)((byteg & MED) | (HEX_0));

                    frame.SetPixel(x, y, Color.FromArgb(c.R, byteg, byteb));
                    //c = frame.GetPixel(x, y);
                    //bools[i] = c.B % 2 == 1; bytes[i] = c.B;
                    //bools[i] = c.G % 2 == 1; bytes[i] = c.G;
                }
            }

            //String s = System.Text.Encoding.ASCII.GetString(BoolArrayToBytes(bools));
            //write new .avi file
            AVIWriter writer = new AVIWriter();
            writer.Open(output,reader.Width,reader.Height);
            foreach(Bitmap bitmap in bitmapL)
            {
                writer.AddFrame(bitmap);
            }

            reader.Close();
            writer.Close();
        }
Ejemplo n.º 5
0
 private void DoRecord(object obj)
 {
     AVIWriter writer = new AVIWriter();
     writer.Open( System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\video" + String.Format("{0:_dd-M-yyyy_hh-mm-ss}", DateTime.Now) + ".avi", this.imgWidth, this.imgHeight);
     writer.FrameRate = 15;
     // as long as we're recording
     // we dequeue the BitMaps waiting in the Queue and write them to the file
     while (IsRecording)
     {
         if (frames.Count > 0)
         {   
             
             Bitmap bmp = frames.Dequeue();
             writer.AddFrame(bmp);
         }
     }
     writer.Close();
     
 }