【问题标题】:Transfer animated GIF over socket通过套接字传输动画 GIF
【发布时间】:2012-09-02 17:14:28
【问题描述】:

我从事一个项目,我需要通过 TCP 套接字将 GIF 从服务器传输到小程序。 问题是当我传输图像时它变成静态的(显示的最后一帧)。

我尝试传输(ICON)我在服务器端加载图像的位置,但结果相同。

那么,是否有任何类可以读取动画 gif,以便我可以通过 ObjectOutputStream 传输它? 还是其他方式?

服务器端:

ImageIcon icon = new ImageIcon("D:\\Data Files\\simu.gif");
Mat_out.writeObject(icon);

客户端:

ImageIcon icon = (ImageIcon) Mat_in.readObject();
jLabel2.setIcon(icon);

【问题讨论】:

    标签: java sockets applet gif


    【解决方案1】:
    1. 使用工具包的createImage(..) methods of toolkit 方法之一加载图像,但是..
    2. 添加MediaTracker 以确保在传输之前加载整个图像。 (这也适用于从ImageIcon 返回的图像,但为什么要创建一个不需要的 GUI 组件呢?)

    使用阻塞方法交替加载图像的整个byte[],并将其提供给createImage(byte[])

    【讨论】:

    • createImage() 方法是否处理动画图像?因为 BufferedImage 和 ImageIO 类不支持动画并返回静态(最后一帧)图像。
    • 非常感谢你。我尝试了第二个选项,它有效! :))
    • 很高兴你把它整理好了。 :) 关于动画帧,请参阅Show an animated BG in Swing 了解更多详情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    • 2018-08-19
    相关资源
    最近更新 更多