TGViewer
Нажимаем кнопки Нажимаем кнопки @pushing_buttons · 223 subscribers
Post #51 193
HEIC

На карте почти не было точек в UK, где я живу последние несколько лет. Как только я переехал в UK, я купил себе свой первый iPhone, а он сохраняет фотографии в формате, который не любит никто кроме Apple – HEIC. Яндекс Диск умеет его отображать в UI, но API не отдаёт никакие метаданные из таких файлов.

Знаете ли вы, что формат HEIF, который служит контейнером для HEIC, предложил вовсе не Apple, а Nokia. Интересно, выпускает ли ещё Nokia телефоны?

Получается, чтобы узнать, где был сделан снимок, придётся сначала сохранить его к себе локально, и только потом уже прочитать его метаданные. Выгружать десятки гигабайт картинок мне не хотелось, поэтому пришлось придумать что-то получше.

В документации от Nokia я заметил, что метаданные находятся в начале файла. Это дало мне надежду, так как вместо скачивания всего файла можно прочитать только первые несколько сотен байт и получить нужную информацию из них. Вместо выгрузки гигабайтов данных, можно обойтись несколькими мегабайтами, что уже вполне преемлемо.

Реализовать это оказалось очень просто. Берём Java библиотеку для чтения HEIF, и вместо InputStream-а локального файла, передаём ей поток байтов из HTTP. Всё сработало лучше, чем я ожидал. Полиморфизм – это охуенно!

Исходный код проекта можно найти в моём GitHub репозитории.
  • 🔥 3
  • ❤ 1
  • ❤‍🔥 1
  • 🤯 1
More from @pushing_buttons
  1. Sep 11, 2026CJ приехал в Витебск на Славянский Базар. Вот что получается, если попросить LLM сделать м…
  2. Aug 15, 2026Корпус для нового компьютера приедет только через неделю, поэтому разделочная доска получа…
  3. Aug 13, 2026Починить или оставить так?
  4. Aug 12, 2026Проджект менеджмент — это новое программирование. Подключил к Codex-у issue tracker Linear…
  5. Aug 10, 2026Post #99
  6. Aug 2, 2026Post #98
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →