Skip Navigation
111 comments
  • Но это обратно совместимо с устаревшей версией, которую нельзя обновить?

    • Да, это была моя первая мысль. Сколько немного устаревших программ, которые больше не обновляются, не смогут открыть новую версию? Надеюсь, она сделана так, что просто переключается на старый формат и игнорирует дополнительную информацию, чтобы, по крайней мере, можно было загрузить файл.

      • Популярные приложения для редактирования фото и видео, такие как Photoshop, DaVinci Resolve и Avid Media Composer, уже поддерживают его, наряду с Chrome, Safari и Firefox. iOS и macOS от Apple также совместимы с новым стандартом файла.

        Это всё, что упоминается в статье. Надеюсь, вы правы насчёт обратной совместимости.

      • Я имею в виду, что именно так и работают анимированные .gif-файлы. Если каким-то образом вам удастся загрузить его в просмотрщик, который не поддерживает функцию анимации, он по крайней мере добросовестно отобразит первый кадр.

        Как, черт возьми, вам удалось бы сделать это в наше время, я не понимаю, но были довольно длинные годы в начале 90-х, когда с таким можно было столкнуться.

    • Говоря об анимации, ваш браузер, вероятно, уже поддерживает APNG. APNG существует уже 21 год и имеет неплохое распространение. Но теперь он официально входит в клуб.

      Тем не менее, APNG-файлы занимают много места, и это достаточно старое решение для анимированной графики с альфа-каналом. Не рассчитывайте, что все вдруг начнут делать APNG. Существует причина, по которой люди держались от него подальше.

    • Некоторые вещи — это просто оформление тропы, проложенной коровой: анимированные PNG существуют уже 20 лет, и, например, Firefox поддерживает их с марта 2007 года.

    • Формат PNG состоит из блоков (чанков), каждый из которых имеет определённую роль, и предусматривает возможность использования новых "стандартизированных" блоков наряду с пользовательскими, которые поддерживались ранее. Вероятно, PNG, созданный с помощью нового программного обеспечения, которое не использует новые функции или использует только дополнительные функции, будет в той или иной мере оставаться читаемым более старым программным обеспечением.

    • Вероятно, это означает, что появятся новые PNG-файлы, которые старое программное обеспечение не сможет открыть.

    • Да, именно поэтому это так здорово

    • Я скажу, если смогу найти новые файлы для тестирования.

      Даже JPEG не всегда обратно совместим. Я загрузил изображение в своё программное обеспечение, которое использует внутренне какую-то старую библиотеку, и там поменялись местами синий и красный каналы.

    • Я, вероятно, получу множество минусов за использование запретного слова, но я попросил ИИ сделать краткое изложение с ссылками о прямой и обратной совместимости новой версии PNG:

      !

      Исходя из последних результатов поиска, новая спецификация PNG (Третье издание) и её эталонная библиотека (libpng) сохраняют сильную обратную совместимость, одновременно вводя современные функции. Вот подробный анализ совместимости:

      🔄 1. Обратная совместимость (просмотр старых PNG с новым libpng)

      • Полная поддержка: новая версия libpng (1.6.49+) и Третье издание PNG полностью поддерживают устаревшие PNG-файлы. Существующие PNG (соответствующие спецификации 2003/2004 гг.) будут отображаться корректно без изменений.
      • Стабильность реализации: развитие API libpng (например, скрытие внутренних структур png_struct/png_info с версии 1.5.0) гарантирует, что старые приложения, использующие функции png_get_*/png_set_*, остаются совместимыми. Прямой доступ к структурам, устаревший с версии 1.4.x, может перестать работать в libpng 2.0.x (только C99).
      • Улучшения безопасности: критические уязвимости (например, CVE-2019-7317 в png_image_free()) были исправлены в libpng 1.6.37 и новее, что делает новую библиотеку более безопасной при декодировании старых файлов.

      ⚠️ 2. Прямая совместимость (просмотр новых PNG со старым libpng)

      • Базовая поддержка: более старые версии libpng (до 1.6.37) могут декодировать новые PNG, если не используются новые функции. Основные чанки, такие как IHDR или IDAT, остались без изменений.
      • Ограничения новых функций:
        • HDR-изображения: требуют libpng 1.6.45+ и приложений с поддержкой чанка mDCv. Старые библиотеки игнорируют HDR-данные, переходя на SDR, что может привести к искажению цветов.
        • Анимация APNG: официально стандартизирована в Третьем издании PNG. Старые версии libpng (например, <1.6) воспринимают APNG как статичные изображения, показывая только первый кадр.
        • Метаданные EXIF: новые чанки eXIf игнорируются устаревшими декодерами, что приводит к потере таких метаданных, как GPS или информация об авторских правах.
      • Риски безопасности: старые версии libpng (например, ≤1.6.36) содержат не исправленные уязвимости (например, CVE-2015-8126). Парсинг вредоносных новых PNG может эксплуатировать эти недостатки.

      📊 Краткое резюме совместимости

      Сценарий Совместимость Ключевые аспекты
      Старый PNG → Новый lib ✅ Отлично Устаревшие файлы работают без сбоев; безопасность улучшена.
      Новый PNG → Старый lib ⚠️ Частично Базовый рендеринг работает, но HDR/APNG/EXIF игнорируются. Есть риски безопасности.
      Новые функции 🔧 Условно Требуются обновлённые приложения (например, Photoshop, браузеры) и поддержка ОС.

      🔧 3. Реализация и внедрение в индустрии

      • Широкая поддержка: основные браузеры (Chrome, Safari, Firefox), ОС (iOS, macOS) и инструменты (Photoshop, DaVinci Resolve) уже поддерживают новую спецификацию.
      • Прогрессивное улучшение: новые функции, такие как HDR, используют опциональные чанки, что обеспечивает плавное ухудшение качества в старом ПО.
      • Гарантия будущей совместимости: ведётся работа над Четвертым изданием PNG (взаимодействие HDR/SDR) и Пятым изданием (улучшенная компрессия).

      💎 Заключение

      • Рекомендуется обновление: новая версия libpng (1.6.49+) обеспечивает безопасность и полную совместимость с устаревшими файлами.
      • Тестируйте рабочие процессы: убедитесь, что критически важные инструменты корректно поддерживают новые функции (например, анимацию APNG в браузерах).
      • Альтернативы для старых систем: для сред с устаревшими библиотеками конвертируйте новые PNG в устаревший формат (например, удаляя HDR/APNG).

      Для разработчиков: используйте png_get_valid(png_ptr, info_ptr, PNG_INFO_mDCv), чтобы проверить поддержку HDR и обеспечить альтернативные варианты.

      !<

      • минусующие: это неправильно?

  • Здорово, что Папуа — Новая Гвинея всё ещё получает обновления /s

  • Неужели это убийца GIF? Если PNG может содержать примерно такое же количество кадров и ограничения по времени, но с немного лучшим качеством изображения, возможно, именно так.

  • PNG с поддержкой HDR, которые не выглядят отвратительно на SDR-дисплеях? Запишите меня в список!

  • У меня всё ещё нет HDR-дисплея. Надеюсь, что в ближайшем будущем какой-нибудь VR-шлем его поддержит.

111 comments
routes.post.similarPosts
Top This Month