¿Como funciona una camara de seguridad en internet?
1. La camara de seguridad toma una foto cada cierto intervalo de tiempo
2. Esta fotografia es almacenada en disco en el servidor
3. Esta imagen esta disponible en internet
4. Cuando un usuario ve la camara de seguridad por internet, esta viendo la imagen de disco
Algunas camaras de seguridad guardan esta secuencia de imagenes en formato de video y es de este video de donde se extraen las imagen despues para ver en internet.
codigo: Clase LiveCam.java
01 import java.awt.Dimension; 02 import java.awt.Image; 03 import java.net.MalformedURLException; 04 import java.net.URL; 05 import java.util.Timer; 06 import java.util.TimerTask; 07 import javax.swing.ImageIcon; 08 import javax.swing.JLabel; 09 import javax.swing.JPanel; 10 /** 11 * @web http://jc-mouse.blogspot.com/ 12 * @author Mouse 13 */ 14 public class LiveCam extends JPanel{ 15 //se carga una imagen 16 private Image snap= new ImageIcon( getClass().getResource("/livecam/snap.jpg") ).getImage() ; 17 //variables para la animacion 18 private TimerTask task; // animacion 19 private Timer tiempo ; //animacion 20 private int speed = 7000; // velocidad de la animacion 1000 = 1 segundo 21 //objeto JLabel para cargar la imagen 22 private JLabel lbSnap = new JLabel(); 23 //tamaño del JPanel 24 private Dimension d = new Dimension(352, 240); 25 26 private String Axis="axis-cgi/jpg/image.cgi?resolution="+d.width+"x"+d.height+""; 27 28 public LiveCam(){ 29 //se asigna el tamaño de los objetos 30 this.setSize(d); 31 this.setPreferredSize(d); 32 this.lbSnap.setSize(this.getSize()); 33 //se añade un LAYOUT 34 this.setLayout(new javax.swing.BoxLayout(this, javax.swing.BoxLayout.LINE_AXIS)); 35 //se añade el objeto JLabel al JPanel y se asigna la primera imagen no de internet 36 this.add(lbSnap); 37 lbSnap.setIcon( new ImageIcon(snap) ); 38 this.setVisible(true); 39 lbSnap.setVisible(true); 40 } 41 42 43 //metodo que descarga una imagen de internet y la coloca en el JLabel 44 private void Cargar_Imagen(){ 45 try { 46 //libera lo que se halla almacenado en el buffer 47 snap.flush(); 48 //carga la nueva imagen 49 /* ----------------- */ 50 //Odate street 51 //snap = new ImageIcon(new URL("http://www.odate-houjinkai.or.jp/snap.jpg")).getImage(); 52 //tienda japon 53 //snap = new ImageIcon(new URL("http://www.hifido.co.jp/camera/osu.jpg")).getImage(); 54 //barberia japon 55 //snap = new ImageIcon(new URL("http://www.salon-net.org/realtime100.jpg")).getImage(); 56 //Camaras AXIS 57 //aeropuerto de rochester 58 //snap = new ImageIcon(new URL("http://84.92.80.192:8081/axis-cgi/jpg/image.cgi?resolution=352x240")).getImage(); 59 //snap = new ImageIcon(new URL("http://206.127.116.63/axis-cgi/jpg/image.cgi?resolution=352x240")).getImage(); 60 //snap = new ImageIcon(new URL("http://62.42.19.194/axis-cgi/jpg/image.cgi?resolution=352x240")).getImage(); 61 //tokio 62 //snap = new ImageIcon(new URL("http://221.255.120.171/axis-cgi/jpg/image.cgi?resolution=352x240")).getImage(); 63 //restorant 64 //snap = new ImageIcon(new URL( "http://80.25.78.169/" + this.Axis )).getImage(); 65 //calle 66 snap = new ImageIcon(new URL( "http://123.220.250.252/" + this.Axis )).getImage(); 67 68 /* ----------------- */ 69 } catch (MalformedURLException ex) { 70 } 71 lbSnap.setIcon( new ImageIcon(snap) ); 72 lbSnap.repaint(); 73 } 74 75 //metodo que utiliza un timer para recargar la imagen de internet cada cierto tiempo 76 public void Comenzar_Animacion(){ 77 tiempo = new Timer(); 78 task = new TimerTask(){ 79 public void run(){ 80 Cargar_Imagen(); 81 } 82 }; 83 tiempo.schedule(task,0, speed); 84 } 85 86 //detiene la animacion 87 public void Detener_Animacion(){ 88 lbSnap.setIcon( new ImageIcon(snap) ); 89 tiempo.cancel(); 90 task.cancel(); 91 lbSnap.setIcon( new ImageIcon( getClass().getResource("/livecam/snap.jpg") ) ); 92 } 93 }
De la linea 50-56 tenemos varios ejemplos de camaras de internet, incluso podemos utilizar tambien imagenes de camaras AXIS sin problemas, pero cuidado con el tamaño de las imagnes porque no todas las camaras de seguridad soportan varios tamaños en la imagen,
El codigo completo del proyecto aqui abajo
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
En este post hablaremos sobre la biblioteca de Apache PDFBox el cual es una herramienta para java de código abierto que...
Un post cortito de fin de semana 🙂 , este trata de la forma de extraer la información de una base de datos formar una es...
Antes de la aparición de los celulares inteligentes y de las grandes mejoras tecnológicas que trajeron con ellas, las ap...
Un servicio web (Web Services) es un sistema de software en la web que nos ofrece la posibilidad de realizar una o múlti...
Cuando nos bajamos un proyecto de internet o cuando nos pasan un código de otra pc (que técnicamente viene siendo lo mis...
Una clase JTree permite mostrar datos de una forma jerárquica y en realidad este objeto no contiene sus datos; es decir,...
Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...
Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...
En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...
Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...