上述的JPEG图片如何实现动画效果?据我所知,JPEG
格式不支持动画。
不,JPEG文件格式本身不支持动画。
你提供的那张图片实际上是一个带有 jpg
文件扩展名的动画 GIF 图片。(浏览器在这种情况下显然会忽略 MIME 类型并查看文件头字节。)
如果您在 Firefox 中查看图像,可以右键单击它并选择“属性”:
您将看到 Type: GIF image (animated, 54 frames)
因此,它是一个被重命名为 .jpg 的 gif 图像。
如果人们关心动态GIF的大小,他们会将其分解为单独的JPG帧,并使用一些JavaScript代码告诉浏览器在原地交换这些帧。例如:example。(Pawel的回答)
然后,实际上有一个提出的Animated JPEG标准,它源自MJPEG,并在每个JPG帧中声明帧速率等内容。不太可能很快出现在浏览器中。
最后,我看到一些图像托管网站用mp4版本替换大型动态GIF以进行展示,并使用一些JavaScript为下载/不支持的浏览器提供实际的GIF文件。
而且,就像Noldorin在所选答案中已经指出的那样,JFIF本身并没有提供在JPG文件中制作动画的功能。 :shrug:
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);
这是一张GIF图片......但文件扩展名已经被人为修改。无论文件扩展名如何,浏览器引擎都足够智能,可以确定图像的格式。
JPEG不支持动画。将GIF文件保存为.jpg扩展名并不会使其成为JPEG文件,它仍然是一个GIF文件。因为操作系统的图像查看器不仅查看文件扩展名,还会查看内容。
如果你在文本编辑器中以二进制格式打开该文件,你会看到第一行包含
GIF89ad�d�˜|
,这是GIF的魔数。
是的,您可以使用单个jpeg文件制作动画。请在Google中搜索“jpeg css sprites”以获得更多信息。当然,这不是由jpeg格式提供本地动画支持。
虽然这是一个有点过时的帖子,但当我尝试获取有关像素动态JPEG的信息时,这个问题首先弹出了,这里提供一些额外的信息。
自从Pixel2以来,谷歌创建了动态JPEG,它是一个普通的JPEG,最后附带一个MP4视频。更多信息请参见此处:
https://android.jlelse.eu/working-with-motion-photos-da0aa49b50c