【问题标题】:Line by line image swing逐行图像摆动
【发布时间】:2011-11-14 17:48:41
【问题描述】:

我想在下载时显示一张图片,我有 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 图像格式,是否有任何已知的库或方法可以制作类似的东西?

【问题讨论】:

    标签: java image swing load preload


    【解决方案1】:

    这取决于图像解码器,但您可以尝试ImageObserverTracking Image Loading: MediaTracker and ImageObserver中有一个例子。

    【讨论】:

      猜你喜欢
      • 2011-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      • 1970-01-01
      • 2015-01-01
      • 2013-06-07
      相关资源
      最近更新 更多