1. Con una cuenta podrás:

    • Publicar preguntas y pedir ayuda
    • Crear tutoriales
    • Acceder a contenido privado
    • Convertirte en un Héroe de la web
    Cerrar notificación
  2. Eres nuevo en la comunidad y necesitas ayuda?
    Sigue estos pasos y recomendaciones antes de publicar tu duda:
    Cerrar notificación

Tutorial C# Uso de la web de modo generico

Tema en 'C / C++' comenzado por TheMatrixNeo1987, 13 de Enero de 2015.

  1. TheMatrixNeo1987

    TheMatrixNeo1987 Nuevo Miembro

    Se incorporó:
    13 de Enero de 2015
    Mensajes:
    22
    Me gusta recibidos:
    9
    Puntos de trofeos:
    3
    Género:
    Hombre
    Ocupación:
    Desarrollador en .NET
    Localización:
    Aguacalientes, Mexico
    Página web:
    Hola a todos

    Este es mi primer post que realizo para la comunidad y se trata del uso de la cámara web de modo genérico sin necesidad de drivers o programas externos. Solo con las librerías AForge

    A continuación les dejo el código:

    Código (Text):
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using AForge.Video;
    using AForge.Video.DirectShow;
    namespace webcam
    {
        public partial class Form1 : Form
        {
            private bool ExistenDispositivos = false;
            private FilterInfoCollection DispositivosDeVideo;
            private VideoCaptureDevice FuenteDeVideo = null;
            public Form1()
            {
                InitializeComponent();
                BuscarDispositivos();
            }
            public void CargarDispositivos(FilterInfoCollection Dispositivos)
            {
                for (int i = 0; i < Dispositivos.Count; i++)
                    cboDispositivos.Items.Add(Dispositivos.Name.ToString());
                cboDispositivos.Text = cboDispositivos.Items[0].ToString();
            }
            public void BuscarDispositivos()
            {
                DispositivosDeVideo = new FilterInfoCollection(FilterCategory.VideoInputDevice);
                if (DispositivosDeVideo.Count == 0)
                    ExistenDispositivos = false;
                else
                {
                    ExistenDispositivos = true;
                    CargarDispositivos(DispositivosDeVideo);
                }
            }
            public void TerminarFuenteDeVideo()
            {
                if(!(FuenteDeVideo==null))
                    if (FuenteDeVideo.IsRunning)
                    {
                        FuenteDeVideo.SignalToStop();
                        FuenteDeVideo = null;
                    }
            }
            private void video_NuevoFrame(object sender, NewFrameEventArgs eventArgs)
            {
                Bitmap imagen = (Bitmap)eventArgs.Frame.Clone();
                EspacioCamara.Image = imagen;
            }
            private void BtnIniciar_Click(object sender, EventArgs e)
            {
                if (BtnIniciar.Text == "Iniciar")
                {
                    if (ExistenDispositivos)
                    {
                        FuenteDeVideo = new VideoCaptureDevice(DispositivosDeVideo[cboDispositivos.SelectedIndex].MonikerString);
                        FuenteDeVideo.NewFrame += new NewFrameEventHandler(video_NuevoFrame);
                        FuenteDeVideo.Start();
                        Estado.Text = "Ejecutando dispositivo";
                        BtnIniciar.Text = "Detener";
                        cboDispositivos.Enabled = false;
                        groupBox1.Text = DispositivosDeVideo[cboDispositivos.SelectedIndex].Name.ToString();
                    }
                    else
                        Estado.Text = "Error: No se encuentra dispositivo";
                }
                else
                {
                    if(FuenteDeVideo.IsRunning)
                    {
                        TerminarFuenteDeVideo();
                        Estado.Text="Dispositivo detenido";
                        BtnIniciar.Text="Iniciar";
                        cboDispositivos.Enabled=true;
                        EspacioCamara.Image = null;
                    }
                }
            }
            private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                if (BtnIniciar.Text == "Detener")
                    BtnIniciar_Click(sender, e);
            }
       
        }
    }

    Si quieres las librerias avisenme o manden un mensaje y si les gusto dejen un like. :)

    Saludos
     
    Última modificación: 27 de Enero de 2015
    A joakingh, griselcesar y FalconMasters les gusta esto.
  2. griselcesar

    griselcesar Miembro Activo

    Se incorporó:
    8 de Enero de 2015
    Mensajes:
    135
    Me gusta recibidos:
    61
    Puntos de trofeos:
    28
    Género:
    Hombre
    Ocupación:
    Estudiante
    Localización:
    Venezuela
    Página web:
    Este código aplica a Linux, específicamente Ubuntu?
     
    A joakingh le gusta esto.
  3. TheMatrixNeo1987

    TheMatrixNeo1987 Nuevo Miembro

    Se incorporó:
    13 de Enero de 2015
    Mensajes:
    22
    Me gusta recibidos:
    9
    Puntos de trofeos:
    3
    Género:
    Hombre
    Ocupación:
    Desarrollador en .NET
    Localización:
    Aguacalientes, Mexico
    Página web:
    Creo que si, no lo eh probado aun
     
  4. joakingh

    joakingh Nuevo Miembro

    Se incorporó:
    9 de Enero de 2015
    Mensajes:
    25
    Me gusta recibidos:
    12
    Puntos de trofeos:
    3
    Género:
    Hombre
    Ocupación:
    Estudiante
    Localización:
    Argentina
    Te recomiendo cambiar el código a PHP, para que no solo tenga una apariencia mejor si que también se mas fácil de entender
     

Comparte esta página