problem avec mon programme java

< Sujet précédent  Sujet suivant >
Index du Forum -> Forum des Projets fin d'études, mini-projets et des réalisations electroniques -> Projets fin d'études
AuteurMessage
Tunisia.png matwiano
Newbie



Messages : 1
Inscrit(e) le: 16/10/2009
Posté le 16/10/2009 15:05  
problem avec mon programme java
Bonjour,
j'ai un problem avec mon programme et j'espère m'aide a corriger les erreur et merci d'avance
c'est un programme qui fais la capture d'image et l'enregistrer et l'envoyé par sms ou mail
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&#8218; 0&#8218; 0&#8218; 320&#8218; 240&#8218; pixels1&#8218; 0&#8218; 320);
object img2;
PixelGrabber grab2 = new PixelGrabber(img2&#8218; 0&#8218; 0&#8218; 320&#8218; 240&#8218; pixels2&#8218; 0&#8218; 320);

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


public void getColors(int []pixels&#8218; int blue&#8218; int red&#8218; int green&#8218; int[] colors) {

blue = red = green = 0;

for (int i = 0 ; i < pixels.length ; i÷÷ {
c = new Color(pixels);
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&#8218; colors2)) {
mailWarning = new MailSender(&#8220;[email protected]&#8220;&#8218; &#8220;Intrusion detectée&#8220;
smsWarning = new MailSender(&#8220;[email protected]&#8220;&#8218; &#8220;Intrusion detectée&#8220;
try{
this.sleep(200);
}
catch(InterruptedException ie){
}
}
}
}
....

public boolean imageChanged(int[] colors1&#8218; int[] colors2){

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

//////////////////////// constructeur //////////////////////////////
public MailSender(String dest&#8218; 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(&#8220;mail.smtp.host&#8220;&#8218; &#8220;ns0.ovh.net&#8220;

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

// auteur du message
msg.setFrom(new InternetAddress(&#8220;&#8220;Administrateur&#8220; <[email protected]>&#8220);

// destinataire
msg.setRecipients(Message.RecipientType.TO&#8218; InternetAddress.parse(dest&#8218; false));

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

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


}


Revenir en haut | Permalien

Haut de page

© 2024 Technologue pro, cours électricité électronique informatique · © 2007 - 2024 Technologue pro - Ressources pédagogiques pour l'enseignement technologique en Tunisie
Usage dans un cadre strictement académique

Technologue: cours en ligne gratuit en électricité, électronique, informatique industrielle et mécanique pour l'enseignement technologique en Tunisie et offre des cours en ligne en génie électrique, informatique, mécanique, une base de données de TP, projets fin d'études et un annuaire de ressources pédagogiques
Licence - Sitemap - Qui somme nous ? - confidentialité- Tunisie Index
J'accepte
Ce site web utilise des cookies. Nous utilisons des cookies pour vous offrir la meilleure expérience sur notre site Web. Plus d'infos