Passage d'une image par serialization (la class image n'est pas serializable)

Contenu du snippet

But du jeu, transférer une image d'un client vers un serveur
(Marche en Applet / Servlet aussi !)

Source / Exemple :


Coté client :

public void writeObject(ObjectOutputStream stream, Image im) throws java.io.IOException 
{

        PixelGrabber grabber = new PixelGrabber(im, 0,0, -1, -1, true);

        try 
        {
          grabber.grabPixels();
        }
        catch (InterruptedException e) 
        {
                e.printStackTrace(); 
        }

        Object pix = grabber.getPixels();
        Dimension dim = new Dimension(((BufferedImage)im).getWidth(),((BufferedImage)im).getHeight());
        stream.writeObject(dim);
        stream.writeObject(pix);
  }

}

Coté Serveur :

public void readObject(ObjectInputStream stream) throws java.io.IOException 
{
        try 
        {
          Dimension dim = (Dimension)stream.readObject();
          Object im = stream.readObject();
          int [] pix = (int [])im;
        
          Canvas can = new Canvas(); // ou n'importe quel Components
          theImage = can.createImage(new MemoryImageSource(dim.width, dim.height, pix, 0, dim.width)); // create image
          this.saveImage((Image)theImage); // Ca c une autre fonction ... j'enregistre avec un encoder gif
        }
        catch (ClassNotFoundException e) 
        {
          e.printStackTrace();
        }
}

Conclusion :


C'est RAPIDE ET CA MARCHE !

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (camuso)