【问题标题】:Can jpg images support animation?jpg图片可以支持动画吗?
【发布时间】:2011-02-20 03:35:13
【问题描述】:

jpeg image

上面的jpg图片是怎么动画的?据我所知jpg 格式不支持动画。

【问题讨论】:

  • 谢谢你们。看起来足够深:)
  • 既然诺多林先回答,那我就给他答对分吧。

标签: animation jpeg


【解决方案1】:

不,JPEG 文件格式不支持动画。

您链接的图像实际上是一个带有jpg 文件扩展名的动画GIF。 (在这种情况下,浏览器显然会忽略 MIME 类型并查看文件头字节。)

【讨论】:

【解决方案2】:

如果你在firefox中查看图片,你可以右键点击它并选择属性:

你会看到Type: GIF image (animated, 54 frames)

因此,它是一个已重命名为 .jpg 的 gif 图像。

【讨论】:

  • 我喜欢 Firefox 用于 Web 开发的另外一个原因。您甚至不需要查看属性,它就在标题栏中(带有尺寸)!
  • @sgunliffe I
【解决方案3】:

为了完整起见,我想指出 Motion-JPEG - 一种 jpg 动画。

MJPEG,通常由网络摄像头生成,是一个接一个连接在一起的 JPEG 文件流,有时由 HTTP 标头分隔,由 MIME 类型为 multipart/x-mixed 的网络摄像头网络服务器提供-replace;boundary=,其中boundary=定义分隔符。

搜索与动画 JPEG 相关的项目 on github 会发现两个结果:

  1. 如果人们关心动画 GIF 的大小,他们会将其剥离成单独的 JPG 帧,并告诉浏览器通过一些 JavaScript 代码就地交换这些帧。对于example。 (Pawel的回答)

  2. 那么实际上有一个提议的Animated JPEG 标准,它源于MJPEG,并在每个JPG 帧中声明帧率等。不太可能很快出现在浏览器中。

最后,我看到图像托管商将大型动画 GIF 替换为 mp4 版本的 GIF 用于演示,加上一些 Javascript 来为下载/不支持的浏览器提供实际的 GIF。

不,JPEG 本身,通过 JFIF,不提供动画 JPG 文件本身的功能,正如 Noldorin 已在所选答案中指出的那样。 :耸肩:

【讨论】:

    【解决方案4】:

    这是一个 GIF 图片...扩展名已手动更改。浏览器引擎足够聪明,可以确定图像格式,而不管文件扩展名如何。

    【讨论】:

      【解决方案5】:
      var c = 1;
      
      /* Preloading images */
      var image1 = new Image();
      image1.src = "a1.jpg";
      var image2 = new Image();
      image2.src = "a2.jpg";
      var image3 = new Image();
      image3.src = "a3.jpg";
      var image4 = new Image();
      image4.src = "a4.jpg";
      var image5 = new Image();
      image5.src = "a5.jpg";
      
      function disp_img(w)
         {
         if (c == 6)
            {
            c = 1;
            }
         var img_src = "a" + c + ".jpg";
         document.ani.src = img_src;
         c++;
         }
      t = setInterval("disp_img(c)", 1000);
      

      【讨论】:

        【解决方案6】:

        No JPEG 不支持动画。保存扩展名为 .jpeg 的 GIF 文件并不意味着它是 JPEG 文件。它仍然是一个 GIF 文件。因为 OS Image viewer 不会查看文件扩展名,而是查看内容。

        如果您将该文件作为二进制文件打开(在文本编辑器中),您将看到第一行包含 GIF89ad�d�˜|� 这是 GIF 的 magic number

        【讨论】:

          【解决方案7】:

          是的, 您可以使用单个 jpeg 制作动画。谷歌“jpeg css sprites”。当然这不会是 jpeg 格式的原生动画支持。

          【讨论】:

            【解决方案8】:

            有点死灵帖子,但由于这个问题在我尝试获取有关像素运动 jpeg 的信息时首先出现,所以这里有一些附加信息。

            从 Pixel2 开始,Google 就创建了motion jpeg,这是一个普通的 jpeg,末尾有一个 mp4 视频。 更多信息在这里:

            https://android.jlelse.eu/working-with-motion-photos-da0aa49b50c

            【讨论】:

              【解决方案9】:

              JPG 没有动画效果。您看到了一系列使用 javascript 渲染的 JPG 图像,或者您看到了一个名为 JPG 的 GIF 文件。即使文件名中添加了错误的扩展名,Web 服务器和浏览器仍可能识别正确的 GIF 文件类型。

              如果您使用十六进制编辑器打开图像文件并且它是一种 GIF 格式,您会看到以下 4 bytes 指定图像类型是 GIF。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2016-12-11
                • 2011-10-31
                • 2016-10-10
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2016-07-24
                相关资源
                最近更新 更多