web-dev-qa-db-fra.com

Les images jpg peuvent-elles prendre en charge l'animation?

image jpeg

Comment l'image jpg ci-dessus est-elle animée? Pour autant que je sache, le format jpg ne prend pas en charge l'animation.

28
Ashish

Non, le format de fichier JPEG n'a pas de support inhérent pour l'animation.

L'image que vous avez liée est en fait un GIF animé déguisé avec une extension de fichier jpg. (Le navigateur ignore apparemment même le type MIME et examine les octets d'en-tête de fichier dans de tels cas.)

40
Noldorin

Si vous affichez l'image dans Firefox, vous pouvez cliquer dessus avec le bouton droit et sélectionner les propriétés:

Vous verrez Type: GIF image (animated, 54 frames)

C'est donc une image gif qui a été renommée en .jpg.

14
aioobe

Pour être complet, j'aimerais souligner qu'il y a Motion-JPEG - une sorte d'animation jpg.

Les MJPEG, généralement produits par des webcams, sont un flux de fichiers JPEG concaténés les uns après les autres, parfois délimités par un en-tête HTTP, et servis par des serveurs Web webcam avec un type MIME multipart/x-mixed-replace; limite = , où limite = définit le délimiteur.

Une recherche de projets liés au JPEG animé sur github donne deux résultats:

  1. Dans le cas où les gens se soucient de la taille d'un GIF animé, ils le décomposent en cadres JPG séparés et disent au navigateur d'échanger ces cadres en place via du code JavaScript. Pour exemple . ( Pawel réponse)

  2. Ensuite, il y a en fait une norme proposée JPEG animé , qui découle de MJPEG et déclare le framerate et ainsi de suite dans chaque image JPG. Il est peu probable que les navigateurs arrivent bientôt.

Et enfin, j'ai vu des hébergeurs d'images pour remplacer les grands GIF animés par une version mp4 du GIF pour la présentation, plus du Javascript pour servir le GIF réel pour les téléchargements/navigateurs non pris en charge.

Et non, JPEG lui-même, via JFIF, n'offre pas la possibilité d'animer un fichier JPG en lui-même, tout comme Noldorin déjà noté dans la réponse choisie. :hausser les épaules:

5
isync

C'est une image GIF ... l'extension a été modifiée à la main. Le moteur de navigation est suffisamment intelligent pour déterminer le format d'image quelle que soit l'extension du fichier.

4
m0s
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);
4
K0D3R

Si vous ouvrez ce fichier en binaire (dans l'éditeur de texte), la première ligne contient GIF89add˜| Quel est le nombre magique pour GIF.

2
sapy

Oui, vous pouvez faire une animation en utilisant un seul JPEG. Google "sprites jpeg css". Bien sûr, ce ne sera pas un support d'animation natif par format jpeg.

1
Pawel

Un peu necro-post, mais depuis que cette question est apparue en premier lorsque j'ai essayé d'obtenir des informations sur le pixel motion jpeg, voici quelques informations supplémentaires.

Depuis Pixel2, Google a créé du jpeg de mouvement, qui est un jpeg ordinaire à la fin duquel il y a une vidéo mp4. Plus à ce sujet ici:

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

0
Felix