Могут ли jpg-изображения поддерживать анимацию? - PullRequest
26 голосов
/ 16 мая 2010

JPEG изображение

Как анимируется изображение jpg? Насколько я знаю jpg формат не поддерживает анимацию.

Ответы [ 7 ]

39 голосов
/ 16 мая 2010

Нет, формат файла JPEG не имеет встроенной поддержки анимации.

Изображение, которое вы связали, на самом деле представляет собой анимированный GIF, замаскированный с расширением jpg. (По-видимому, браузер игнорирует даже тип MIME и в таких случаях просматривает байты заголовка файла.)

13 голосов
/ 16 мая 2010

Если вы просматриваете изображение в Firefox, вы можете щелкнуть по нему правой кнопкой мыши и выбрать свойства:

Вы увидите Type: GIF image (animated, 54 frames)

Таким образом, это gif-изображение, которое было переименовано в .jpg.

5 голосов
/ 13 марта 2015

Для полноты картины я хотел бы отметить, что существует Motion-JPEG - разновидность jpg-анимации.

MJPEG, обычно производимые веб-камерами, представляют собой поток файлов JPEG, сцепленных друг с другом, иногда разделенных заголовком HTTP, и обслуживаемых веб-камерами-серверами с MIME-типом multipart / x-mixed -replace; border = , где border = определяет разделитель.

Поиск анимированных проектов, связанных с JPEG на github приводит к двум результатам:

  1. В случае, если люди заботятся о размере анимированного GIF, они разбивают его на отдельные кадры JPG и просят браузер обменять эти кадры на месте с помощью некоторого кода JavaScript. Для пример . ( Pawel ответ)

  2. Кроме того, на самом деле предлагается Animated JPEG стандарт, который основан на MJPEG и объявляет частоту кадров и т. Д. В каждом кадре JPG. Вероятность появления в браузерах в ближайшее время невелика.

И, наконец, я видел, как хостеры изображений заменяли большие анимированные GIF-файлы на GIF-версию mp4 для презентации, а также некоторые Javascript, которые служили бы фактическим GIF для загрузок / неподдерживаемых браузеров.

И нет, сам JPEG через JFIF не предлагает возможности анимировать JPG-файл сам по себе, так же как Noldorin уже отмечен в выбранном ответе. : Пожимают плечами:

4 голосов
/ 08 мая 2014
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 голосов
/ 16 мая 2010

Это изображение GIF ... расширение было изменено вручную. Движок браузера достаточно умен, чтобы определить формат изображения независимо от расширения файла.

2 голосов
/ 03 марта 2015

Если вы откроете этот файл как бинарный (в текстовом редакторе), вы увидите, что первая строка содержит GIF89add˜| Магическое число для GIF.

1 голос
/ 19 мая 2014

Да, Вы можете сделать анимацию, используя один JPEG. Гугл "jpeg css sprites". Конечно, это не будет встроенная поддержка анимации в формате jpeg.

...