我想把一个bufferedImage从applet传到servlet上,不过发现好象bufferedImage没有实现序列化,不可以用writeObject的方法传输。请问有什么其他方法吗。。谢谢

解决方案 »

  1.   

    最简单的办法先把它编码(jpg压缩等)成2进制流传到另一端再解码创建一个BufferedImage
      

  2.   

    public static void writeJPEG(OutputStream out, BufferedImage image, int quality, IIOWriteProgressListener listener) throws IOException {
            ImageOutputStream ios = ImageIO.createImageOutputStream(out);
            Iterator it = ImageIO.getImageWritersBySuffix("jpg");
            if (it.hasNext()) {
                ImageWriter iw = (ImageWriter) it.next();
                ImageWriteParam iwp = iw.getDefaultWriteParam();
                iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
                iwp.setCompressionQuality((float) quality / 100f);
                iw.setOutput(ios);
                iw.addIIOWriteProgressListener(listener);
                iw.write(null, new IIOImage(image, null, null), iwp);
                iw.dispose();
                out.flush();
                out.close();
            }
        }