Problem dans notre programme

matwiano Messages postés 12 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 8 janvier 2010 - 15 oct. 2009 à 13:44
matwiano Messages postés 12 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 8 janvier 2010 - 15 oct. 2009 à 13:47
j'ai un problem avec mon programme et j'espère m'aide a corriger les erreur et merci d'avance
et voila mon programme:

import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.PixelGrabber;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

import javax.media.Buffer;
import javax.media.CaptureDeviceInfo;
import javax.media.CaptureDeviceManager;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.NoDataSourceException;
import javax.media.NoPlayerException;
import javax.media.NoProcessorException;
import javax.media.Player;
import javax.media.control.FrameGrabbingControl;
import javax.media.format.VideoFormat;
import javax.media.protocol.DataSource;
import javax.media.util.BufferToImage;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import java.io.*;
import java.net.InetAddress;
import java.util.Properties;
import java.util.Date;
//imports de base
import java.io.*;
import java.net.InetAddress;
import java.util.Properties;
import java.util.Date;

// imports spécifiques à JavaMail
import javax.mail.*;
import javax.mail.internet.*;


//------------------------------------------------------------------------------------------
public class EchoServer
{
public static char c;
public static void main (String args [])
{
try
{
// Création d'un serveur sur le port 13267
ServerSocket server = new ServerSocket (13267);
// Attente de la connexion d'un client
System.out.println("debut chargement image");
while (true)
{
new NouvelleConnexion(server.accept ());
System.out.println ("Connexion sur le socket");
//---------------------------------------------------

//----------------------------------------------------


}
}
catch (IOException e)
{
System.out.println (e);
}



}
}
//---------Fin Main----------------------------------------
//Socket socket = server.accept ();

//System.out.println ("Connexion sur le socket : " + socket);
//-------------------------------------------------------------------------------------------
class NouvelleConnexion implements Runnable
{
Thread t;
Socket sck;
// Récupération des flux d'entrés et de sortie
InputStream fluxEntree;
OutputStream fluxSortie;
NouvelleConnexion(Socket sck)
{
//t = new Thread(this, sck.getInetAdress().getHostName()+"/"+sck.getPort());
t=new Thread(this);
this.sck=sck;
// Récupération des flux d'entrés et de sortie
try
{
fluxEntree = sck.getInputStream ();
fluxSortie = sck.getOutputStream ();
}
catch (IOException e)
{
e.printStackTrace();
}
System.out.println ("Connexion sur le socket : " + this.sck);
t.start();
}
public void run()
{
try
{
EchoServer.c = (char)fluxEntree.read();
}
catch (IOException e)
{
e.printStackTrace();
}

if(EchoServer.c == 'c')
{
System.out.println ("démmarage de la capture");
// récupération d'un périphérique à partir de son nom
CaptureDeviceInfo captureDevice = CaptureDeviceManager.getDevice("vfw:Microsoft WDM Image Capture (Win32):0");
// récupération du MediaLocator lié au périphérique de capture
MediaLocator mediaLocator = captureDevice.getLocator();
try {
// récupération d'une datasource à partir d'un MediaLocator
DataSource ds = Manager.createDataSource(mediaLocator);
// connexion sur la DataSource
ds.connect();

// connexion d'un player sur la datasource
Player player = Manager.createPlayer(ds);
// préparation du player et du périphérique
player.realize();

// démarrage de la lecture
player.start();

//-----------------------------------------------------------------------------------------------
// attend 1 seconde

while (true)
{

try
{
t.sleep(800);
}
catch (InterruptedException e)
{
e.printStackTrace();
}

// récupère un contrôle sur le flux
FrameGrabbingControl fgc = (FrameGrabbingControl) player.getControl("javax.media.control.FrameGrabbingControl");
Buffer buf;
// récupère un Buffer contenant l'image demandée
buf = fgc.grabFrame();

// convertion du buffer en image (via BufferToImage)
BufferToImage converter;
converter = new BufferToImage((VideoFormat) buf.getFormat());
Image img;
// création de l'image
img = converter.createImage(buf);
double i;
i=0;
saveJPG(img, i%2+".jpg");
i++;
//--------------------------------------------------------------
File fichier = new File(i%2+".jpg");
byte[] octets = new byte[(int)fichier.length()];
FileInputStream photo = new FileInputStream(fichier);
photo.read(octets);
ObjectOutputStream fluxReseau = new ObjectOutputStream(sck.getOutputStream());
fluxReseau.writeObject(octets);

//------------------------------------------------------------

}
}
catch (NoDataSourceException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
catch (NoProcessorException e)
{
e.printStackTrace();
}
catch (NoPlayerException e)
{
e.printStackTrace();
}



// Récupération des flux d'entrés et de sortie
// InputStream fluxEntree = socket.getInputStream ();
//OutputStream fluxSortie = socket.getOutputStream ();



//server.close ();
/* }
catch (IOException e)
{
System.out.println (e);
}*/
}//fin de if
}
//-------------------------------------------------------------------------------------------------------
public static void saveJPG(Image img, String s)
{
BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = bi.createGraphics();
g2.drawImage(img, null, null);

FileOutputStream out = null;
try
{
out = new FileOutputStream(s);
}
catch (java.io.FileNotFoundException io)
{
// création du fichier automatiquement si inexistant
}

// encodeur JPEG
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
// paramètres d'encodage
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
param.setQuality(0.5f, false);
// assignation des paramètres d'encodage
encoder.setJPEGEncodeParam(param);

try
{
// encodage de l'image
encoder.encode(bi);
out.close();
}
catch (java.io.IOException io)
{
System.out.println("IOException");
}
}
//----------------------------------------------------------------------------------------------------------
if (monitoring){

// on créé les PixelGrabber qui vont a partir des images remplir les
// tableau de pixels
Object img1;
PixelGrabber grab1 = new PixelGrabber(img1‚ 0‚ 0‚ 320‚ 240‚ pixels1‚ 0‚ 320);
Object img2;
PixelGrabber grab2 = new PixelGrabber(img2‚ 0‚ 0‚ 320‚ 240‚ pixels2‚ 0‚ 320);

try {
// on grabbe
grab1.grabPixels();
grab2.grabPixels();
}
catch (InterruptedException e) {
System.err.println(“impossible de grabber les pixels de l`image“);
return;
}
// on récupère la moyenne des 3 couleurs pour 2 images successives
getColors(pixels1‚ red1‚ green1‚ blue1‚ colors1);
getColors(pixels2‚ red2‚ green2‚ blue2‚ colors2);


public void getColors(int []pixels‚ int blue‚ int red‚ int green‚ int[] colors) {

blue red green = 0;

for (int i = 0 ; i < pixels.length ; i÷÷) {
c = new Color(pixels[i]);
blue = blue ÷ c.getBlue();
red = red ÷ c.getRed();
green = green ÷ c.getGreen();
}
blue = blue / imageSize;
red = red / imageSize;
green = green / imageSize;
colors[0] = red;
colors[1] = green;
colors[2] = blue;
}
if(imageChanged(colors1‚ colors2)) {
mailWarning = new MailSender(“matthieu.drony@supinfo.com“‚ “Intrusion detectée“);
smsWarning = new MailSender(“06xxxxxxxx@orange.fr“‚ “Intrusion detectée“);
try{
this.sleep(200);
}
catch(InterruptedException ie){
}
}
}
}
....

public boolean imageChanged(int[] colors1‚ int[] colors2){

for (int i = 0 ; i < 3 ; i÷÷) {
if ((colors2[i] > colors1[i]÷3) && (colors2[i] > colors1[i]-3) ){
return true;
}
}
return false;
}
//classe qui permet l'envoi de mails et de SMS
class MailSender {

//////////////////////// constructeur //////////////////////////////
public MailSender(String dest‚ String message) {

try {
// recupération des propriétés du système
Properties props = System.getProperties();

// définition du type de message et du serveur smtp pour l'envoi
props.put(“mail.smtp.host“‚ “ns0.ovh.net“);

// conversion du message au format Mime
Session session = Session.getInstance(props‚ null);
Message msg = new MimeMessage(session);

// auteur du message
msg.setFrom(new InternetAddress(“\“Administrateur\“ <matthieu.drony@free.fr>“));

// destinataire
msg.setRecipients(Message.RecipientType.TO‚ InternetAddress.parse(dest‚ false));

// objet‚ en-tête‚ et contenu du message
msg.setSubject(“Intrusion !!!“);
msg.setText(“Bonjour‚ une intrusion a été détectée.\n\n“ ÷ message);
msg.setHeader(“X-Mailer“‚ “JavaVideoMonitoring“);
msg.setSentDate(new Date());

// envoi du message
Transport.send(msg);
}
catch(Exception e) {
e.printStackTrace();
}
}
}


}

1 réponse

matwiano Messages postés 12 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 8 janvier 2010
15 oct. 2009 à 13:47
c'est un programme qui fais la capture d'image et l'enegisrer et l'envoyé par sms ou mail
0
Rejoignez-nous