Как анимировано приведенное выше изображение jpg? Насколько я знаю, формат jpg
не поддерживает анимацию.
Могут ли изображения jpg поддерживать анимацию?
Ответы (8)
Нет, формат файла JPEG не поддерживает анимацию.
Изображение, на которое вы ссылаетесь, на самом деле является анимированным GIF, замаскированным расширением файла jpg
. (По-видимому, браузер игнорирует даже тип MIME и в таких случаях просматривает байты заголовка файла.)
Если вы просматриваете изображение в firefox, вы можете щелкнуть по нему правой кнопкой мыши и выбрать свойства:
Вы увидите Type: GIF image (animated, 54 frames)
Таким образом, это gif-изображение, которое было переименовано в .jpg.
Для полноты картины я хотел бы отметить, что существует Motion-JPEG — своего рода анимация в формате jpg. .
MJPEG, обычно создаваемые веб-камерами, представляют собой поток файлов JPEG, объединенных вместе, один за другим, иногда разделенных заголовком HTTP, и обслуживаемых веб-камерой-веб-серверами с MIME-типом multipart/x-mixed-replace; border=, где border= определяет разделитель.
Поиск анимированных проектов, связанных с JPEG, на github приводит к двум результаты:
В случае, если людям важен размер анимированного GIF, они разбивают его на отдельные кадры JPG и сообщают браузеру обменять эти кадры на месте с помощью некоторого кода JavaScript. Например, . (ответ Pawel)
Кроме того, на самом деле предлагается стандарт Animated JPEG, который основан на MJPEG и объявляет частоту кадров и т. д. в каждом JPG-кадр. Вряд ли появится в браузерах в ближайшее время.
И, наконец, я видел, как хостеры изображений заменяли большие анимированные GIF-файлы на версию GIF в формате mp4 для презентации, а также немного Javascript для обслуживания фактического GIF для загрузки / неподдерживаемых браузеров.
И нет, сам JPEG через JFIF не предлагает средства для анимации файла JPG сам по себе, как уже Noldorin отмечено в выбранном ответе. :пожимаю плечами:
Это изображение в формате GIF... расширение было изменено вручную. Движок браузера достаточно умен, чтобы определять формат изображения независимо от расширения файла.
Нет JPEG не поддерживает анимацию. Сохранение файла GIF с расширением .jpeg не делает его файлом JPEG. Это все еще файл GIF. Поскольку программа просмотра изображений ОС не просматривает расширение файла, она просматривает содержимое.
Если вы откроете этот файл как двоичный (в текстовом редакторе), вы увидите, что первая строка содержит GIF89ad�d�˜|
, что является магический номер для GIF.
Да, вы можете сделать анимацию, используя одиночный jpeg. Погуглите "спрайты jpeg css". Конечно, это не будет встроенная поддержка анимации в формате jpeg.
Немного некропоста, но поскольку этот вопрос возник первым, когда я пытался получить информацию о движении пикселей в формате jpeg, вот некоторая дополнительная информация.
Начиная с Pixel2, Google создала motion jpeg, который представляет собой обычный jpeg, в конце которого есть видео в формате mp4. Подробнее об этом здесь:
https://android.jlelse.eu/working-with-motion-photos-da0aa49b50c
JPG не анимируется. Вы либо видели серию изображений JPG, обработанных с помощью javascript, либо видели файл GIF с именем JPG. Веб-сервер и браузер могут по-прежнему распознавать правильный тип файла GIF, даже если к имени файла было добавлено неправильное расширение.
Если вы откроете файл изображения, и если это своего рода формат GIF с помощью шестнадцатеричного редактора, вы увидите следующее 4 bytes
, обозначающее, что тип изображения — GIF.