Bonjour;
je suis entrain de transférer des images a travers un réseaux en utilisant les RMI
pour ce faire j'ai du transformer mon image de Image a int[] car Image n'est pas séréiablizable.
((BufferedImage) image).getRGB(0,0,image.getWidth(jc),image.getHeight(jc),temp,0,image.getWidth(jc)),
de l'autre coté jé reconstruit mon image avec
image = Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(rect.width, rect.height, is.getImageInPixel(), 0,rect.width));
jusqua la pas de problème
mais quand je veus sauvegarder mon image sur le server entre les 2 clients
1 2 3 4 5 6 7 8 9 10 11 12 13
| try {
int Imagewidth = requests.getChanges().getElement().getRect().width;
int Imageheight = requests.getChanges().getElement().getRect().height;
ImageIcon img = Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(Imagewidth, Imageheight, ((ImageSendable)requests.getChanges().getElement()).getImageInPixel(), 0,Imagewidth));
ImageIO.write(
(RenderedImage)img
, "jpg"
, new File("/images_document/"+IDDocument+"_"+requests.getChanges().getElement().getID())
);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} |
j'obtiens
1 2 3
| Exception in thread "Thread-2" java.lang.ClassCastException: sun.awt.image.ToolkitImage cannot be cast to java.awt.image.RenderedImage
at XMLToStyledDocument.XMLDrawingDocument.requestDecompilerServer(XMLDrawingDocument.java:86)
at serveur.FileHandler.MyDrawingFileHandlerThread.run(MyDrawingFileHandlerThread.java:46) |
voila
je suis pas un expert en image donc si quelqu'un pouvait m'expliquer ou je me plante ?
quand j'essaye d'enregistrer une Image utilisait IOImage pas de soucis
quand je décompose et recompose mon image en tableau de int pas de soucis
mais quand je combine les 2 d'un coup sa marche plus...
donc si quelqu'un a une solution qui me permette de transeferer a travers RMI une image (sous n'importa quel forme) et de la sauvegarder sur mon server il me sauverais.
Partager