jpg图像可以支持动画吗?

时间:2010-05-16 17:56:20

标签: animation jpeg

jpeg image

上面的jpg图像是如何动画的?据我所知jpg格式不支持动画。

9 个答案:

答案 0 :(得分:39)

不,JPEG文件格式没有固有的动画支持。

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

答案 1 :(得分:13)

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

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

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

答案 2 :(得分:5)

为了完整起见,我想指出那里有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帧中声明帧速率等等。不太可能很快到达浏览器。

  3. 最后,我见过图片托管商用GIF版本的GIF代替大型动画GIF进行演示,还有一些Javascript用于下载/不支持浏览器的实际GIF。

    不,JPEG本身,通过JFIF,不提供设置本身动画JPG文件的工具,就像在所选答案中已经注明Noldorin一样。 :耸肩:

答案 3 :(得分:4)

这是一张GIF图片......扩展程序已手动更改。无论文件扩展名如何,浏览器引擎都足够智能地确定图像格式。

答案 4 :(得分:4)

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 :(得分:2)

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

答案 6 :(得分:1)

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

答案 7 :(得分:1)

JPG无法设置动画。您要么看到了一系列用javascript渲染的JPG图像,要么看到了一个名为JPG的GIF文件。即使将错误的扩展名添加到了文件名,Web服务器和浏览器仍可能识别出正确的GIF文件类型。

如果您打开图像文件,并且使用十六进制编辑器将其作为一种GIF格式,则会看到以下4 bytes,表示该图像类型为GIF。

enter image description here

答案 8 :(得分:0)

有点死灵贴,但是当我尝试获取有关像素运动jpeg的信息时,这个问题首先出现了,因此这里有一些其他信息。

自Pixel2起,Google创建了运动jpeg,这是一个普通的jpeg,末尾有mp4视频。 此处的更多信息:

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