Java 逐行图像摆动

Java 逐行图像摆动,java,image,swing,load,preload,Java,Image,Swing,Load,Preload,我想在下载图像时显示它,我有URL,我正在尝试获得如下图像部分: InputStream openStream = url.openStream(); DataInputStream dis = new DataInputStream(new BufferedInputStream(openStream)); ByteArrayOutputStream os = new ByteArrayOutputStream(); while ((s =

我想在下载图像时显示它,我有URL,我正在尝试获得如下图像部分:

InputStream openStream = url.openStream();

        DataInputStream dis = new DataInputStream(new BufferedInputStream(openStream));
        ByteArrayOutputStream os = new ByteArrayOutputStream();

         while ((s = dis.read(b)) != -1) {

            os.write(b , 0, s);

            support.firePropertyChange("stream", null, os);

        }
通过这种方式,任何侦听器都可以获得流并创建一个图像,这种方式:

 if("stream".equals(evt.getPropertyName())){
        try {
            ByteArrayOutputStream stream = (ByteArrayOutputStream) evt.getNewValue();
            byte[] byteArray = stream.toByteArray();
            stream.flush();
            Image createImage = Toolkit.getDefaultToolkit().createImage(byteArray);

            this.getContentPane().add(new JLabel(new ImageIcon(createImage)));

       } catch (IOException ex) {
            Logger.getLogger(ImageTest.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

但是,我得到了一个“JPEG文件sun.awt.image.ImageFormatException:JPEG数据流不包含图像”错误,该图像是JPG图像格式,是否有已知的库或方法可以制作类似的图像?

这取决于图像解码器,但您可以尝试。这里有一个例子