JPG图像能支持动画吗?

33

JPEG图片

上述的JPEG图片如何实现动画效果?据我所知,JPEG格式不支持动画。


谢谢大家。我没有看得够深 :) - Ashish
既然Noldorin先回答了,我会给他正确的答案分数。 - Ashish
9个回答

45

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

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


这里我看到了这个带有动画的jpg图片 请前往该页面并在新标签页中打开图片 - Chintan Gor

15

如果您在 Firefox 中查看图像,可以右键单击它并选择“属性”:

您将看到 Type: GIF image (animated, 54 frames)

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


2
我喜欢用Firefox进行网页开发的另一个原因是,你甚至不需要查看属性,它就在标题栏中(包括尺寸)! - scunliffe
1
@scunliffe 我比起 Firefox 更加喜欢 Firebug。 - m0s

9
为了完整起见,我想指出有动态JPEG - 类似于jpg动画。
通常由网络摄像头生成的MJPEG是一系列连接在一起的JPEG文件流,有时由HTTP头分隔,并由带有MIME类型的网络摄像头服务器提供multipart/x-mixed-replace;boundary=,其中boundary=定义了分隔符。
在github上搜索与动态JPEG相关的项目结果有两个发现:
  1. 如果人们关心动态GIF的大小,他们会将其分解为单独的JPG帧,并使用一些JavaScript代码告诉浏览器在原地交换这些帧。例如:example。(Pawel的回答)

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

最后,我看到一些图像托管网站用mp4版本替换大型动态GIF以进行展示,并使用一些JavaScript为下载/不支持的浏览器提供实际的GIF文件。

而且,就像Noldorin在所选答案中已经指出的那样,JFIF本身并没有提供在JPG文件中制作动画的功能。 :shrug:


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);

5

这是一张GIF图片......但文件扩展名已经被人为修改。无论文件扩展名如何,浏览器引擎都足够智能,可以确定图像的格式。


3

JPEG不支持动画。将GIF文件保存为.jpg扩展名并不会使其成为JPEG文件,它仍然是一个GIF文件。因为操作系统的图像查看器不仅查看文件扩展名,还会查看内容。

如果你在文本编辑器中以二进制格式打开该文件,你会看到第一行包含 GIF89ad�d�˜|,这是GIF的魔数


2

是的,您可以使用单个jpeg文件制作动画。请在Google中搜索“jpeg css sprites”以获得更多信息。当然,这不是由jpeg格式提供本地动画支持。


1

虽然这是一个有点过时的帖子,但当我尝试获取有关像素动态JPEG的信息时,这个问题首先弹出了,这里提供一些额外的信息。

自从Pixel2以来,谷歌创建了动态JPEG,它是一个普通的JPEG,最后附带一个MP4视频。更多信息请参见此处:

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


1

JPG无法动画。你可能看到的是使用JavaScript渲染的一系列JPG图像,或者是将GIF文件命名为JPG。即使文件名添加了错误的扩展名,Web服务器和浏览器仍然可以识别正确的GIF文件类型。

如果你使用十六进制编辑器打开图像文件,并且它是某种GIF格式,则会看到以下4个字节指定图像类型为GIF。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接