Размер гифки для Телеграмм

А теперь о подробностях реализации.

Всё началось с дискуссии в чатике Telegram-разработчиков о грядущей фиче:

Мужик сказал — мужик сделал! Первый прототип на Pillow и svgwrite, разбирающий GIF’ку на пиксели и преобразующий их в векторные квадратики с предпросмотром в SVG, был написан за один выходной.

Веселье началось дальше…

JSON — открытый формат, говорили они.

Доселе с форматами в Telegram то и дело хитрили. Сделали поддержку GIF-анимаций — на самом деле они конвертируются в MP4-видео. Сделали поддержку стикеров — выгружаются они в PNG, но преобразуются в WebP. В этот раз всё честнее: что на входе, то и на выходе.

Для анимированных стикеров в Telegram используется не GIF, не видео, и даже не какой-нибудь устоявшийся формат векторной графики типа SVG или — упаси Ктулху! — Flash. В нём задействован новомодный формат, вышедший из-под крыла Airbnb — Lottie. Доселе он имел некоторую известность в среде мобильных разработчиков, но благодаря Telegram, возможно, обретёт бо́льшую популярность.

Как в Телеграмме найти GIF картинки на любую тематику?

По сути своей, файлы Lottie являются сериализованными в JSON проектами Adobe After Effects, по максимуму реализующими все возможности этой программы. С отображением, увы, всё не так радужно. Хотя готовых «официальных» реализаций библиотеки для рендеринга Lottie и много, как раз под покрываемые Telegram платформы: Android, iOS, Qt и Web — лишь часть из возможностей формата реализована во всех из них. В Telegram пошли ещё дальше и ограничили перечень поддерживаемых возможностей, а также «придумали» свой формат, который отличается от обычного Lottie всего лишь упаковкой в GZip и параметром «tgs»: 1 . Кажется, я знаю, где сейчас работает Денис Попов! 🙂

И если с документацией на библиотеки для разных платформ всё довольно неплохо, то найти хоть какое-то описание устройства формата, увы, не удалось — только JSON-схему в исходниках lottie-web. Пришлось попутно ковыряться в существующих анимациях, дабы понять общие концепции формата. Также обнаружились расхождения реальных файлов со схемой: в частности, в слоях типа 4, согласно схеме, вложенные объекты хранятся в свойстве «it» — однако в реальных файлах ключ называется «shapes» , а «it» не работает.

Выясненные нюансы формата:

  • Файл состоит из слоёв. В отличие от GIF, здесь у каждого слоя может быть произвольное время начала и конца отображения. К слою можно (точнее, нужно) применять различные трансформации: масштабирование, повороты, изменение прозрачности и т.д. Слои могут быть даже трёхмерными (запрещено для Telegram).
  • Слой состоит из «фигур» (shapes). Типов у них много, некоторе нельзя использовать в Telegram. На практике, чтобы слой отобразился, он должен включать три фигуры: контур (в готовых анимациях это обычно тип «sh» — кривые Безье; конвертер пока использует только тип «rc» — прямоугольники), заливка (тип «fl» ) и трансформация (тип «tr» ).
  • Можно даже включать растровые элементы, создавать текстовые слои, устанавливать взаимосвязи параметров слоёв и фигур через выражения. Вся эта вкуснотища также запрещена в Telegram.
Еще по теме:  Как почистить папку Телеграмм на Андроид

Казалось бы, это и не проблема вовсе? Даже простенький GZip неплохо справляется со сжатием вопиюще повторяющихся данных, и 1 МБ сырого JSON магическим образом превращается в пару десятков килобайт, которые спокойно пролезают в заявленное ограничение в 64 кБ. Не тут-то было!

Загружаю я, значит, пухленькую анимацию, которая спокойно отображается lottie-web, в Telegram — и тут вместо условно красивого пиксель-арта на меня смотрит статическое размазанное вот это:

Что такое?! А оказалось, на разжатые данные тоже есть явно не указанное ограничение в 1 МБ. Представитель команды Telegram оперативно подтвердил его и сообщил о грядущем поднятии лимита до 2 МБ.

Даже если эти проблемы решат — стикеры, выходящие за пределы 1 МБ несжатых данных и не содержащие трансформаций, окажутся недоступными для пользователей старых версий Telegram. Так что придётся, видимо, соблюдать ограничения и впредь.

Прозрачность — это важно

Pillow, наряду с OpenCV, можно назвать индустриальным стандартом для обработки изображений в Python. Мало того, он неплохо заточен и под особенности GIF: поддерживает индексированные цвета, даёт доступ к палитре. Поддерживает преобразование пиксельной карты в NumPy-массив, что важно для продуктивной обработки. Даже статистику по цветам собирает! Но обнаружились и минусы:

  1. Не нашлось задокументированного способа получить индекс прозрачного цвета. Пришлось в качестве временного решения подразумевать, что прозрачный цвет — самый распространённый, но в реальных GIF’ках это не всегда так.
  2. То же самое с задержкой между кадрами: Pillow отдаёт только сами кадры как последовательность изображений, без информации о задержках.
  3. Иногда некорректно накладываются частичные кадры.

Прозрачность, как оказалось, gif2numpy не поддерживает вообще: цвета сразу преобразуются в три канала с разрядностью в байт, без учёта разрядности и сохранения индексов цветов. Благо, модуль состоит из одного файла, так что не составило труда включить его в проект и доработать, зарезервировав под прозрачность цвет #FE00FE .

Проблему с частичными кадрами решить оказалось нетривиально. gif2numpy пытается накладывать такие кадры на предыдущий, однако не проверяет параметры наложения, из-за чего также не всегда выходит правильный результат. Дабы не возиться с флагами, добавлена предварительная обработка изображений с помощью gifsicle с ключом —unoptimize — он преобразует частичные кадры в полные. А заодно приводит их к использованию глобальной палитры, что устранило необходимость отдельным образом обрабатывать прозрачный цвет при использовании собственной палитры кадра.

Сожми меня сильнее

Квадратики — это хорошо, но с такими ограничениями нужно проявить больше фантазии, иначе в Telegram не «пролезают» даже миниатюрные GIF’ки.

Первым в ход пошло нечто похоже на RLE : соседние по горизонтали квадратики одного цвета объединяются в один прямоугольник.

Далее — черёд эксплуатации особенностей Lottie. Поскольку каждый слой имеет произвольное время начала и конца — можно применить технику, которая давным-давно используется видеокодеками, и отчасти в самом GIF: квадратики, которые остаются на одном месте в течение нескольких кадров, можно слить в один слой, во время отображения которого сменяется несколько других. Что и реализовано, пока только для пар соседних слоёв.

Еще по теме:  Если в Телеграмм не находит по номеру

Планы по развитию

Идей, которые здесь можно применить, навалом:

  • Распознавать одноцветные области любого размера. Можно разбивать их на набор прямоугольников, для чего есть неплохой алгоритм. Также целесообразно преобразовывать их в контур, но это омрачается необходимостью указывать все точки кривых Безье в Lottie — прямоугольниками в некоторых случаях может быть выгоднее.
  • Распознавать движение. Техника, опять-таки, издревле применяющаяся в видеокодеках. Если один и тот же контур не меняет форму от кадра к кадру, но лишь координаты — стоит вместо дублирования на нескольких слоях поместить его на один слой с трансформацией.
  • Распознавать «накрытие» одних областей другими. Пример:

. .O..O. . .OOOO. .

Ссылки

  • Исходники. Местами страшные.
  • Канал, на котором я выкладываю паки успешно сконвертированных GIF’ок.

Источник: habr.com

Гифки для Telegram – как отправлять GIF

Про Telegram

Гифки – это занимательные картинки, в которых присутствует анимация. Можно даже назвать эти изображения мини-роликом, так как в среднем анимация может длиться 2-15 секунд.

Наверняка все активные пользователи интернета уже не раз сталкивались с картинками в формате GIF. Эти изображения могут носить разный характер, как познавательный, так и развлекательный. Одним из преимуществом данного формата является небольшой «вес», они не затрачивают такой объем трафика, как например видеоролик.

Гифки для Telegram – как отправлять GIF

Гифки в Телеграмм: как отправлять

Отправить своему собеседнику GIF изображение можно несколькими способами. Первый вариант – это отправка как обычный файл, но для этого нужно иметь нужную гифку в памяти своего устройства. Разработчики Телеграмма решили немного упростить жизнь активных пользователей, теперь вы можете отправить GIF при помощи обычного поиска и вставки.

Еще совсем недавно данная операция была доступна только на смартфонах с операционной системой iOS, но сейчас эта функция доступна и на Андроидах.

Для того чтобы совершить данное действие достаточно следовать следующим подсказкам:

  • Во время переписки следует нажать на значок в виде скрепки;
  • Далее следует выбрать пункт «галерея», а затем «поиск GIF»;
  • Теперь вам остается только ввести название нужной гифки, поисковая система предложит вам несколько самых популярных вариантов;
  • Выберите понравившийся вам GIF и нажмите на него.

Гифки для Telegram – как отправлять GIF Гифки для Telegram – как отправлять GIF

Все ранее использованные вами GIF изображения будут сразу же высвечиваться после нажатия графы «поиск GIF».

Представленный формат общения может прекрасно дополнить вашу переписку и поможет в выражении чувств.

Источник: telegram-pro.ru

Как отправлять, сохранять и создавать гифки в Телеграмм

*.gif – это формат файлов, которые представляют собой двигающиеся анимации. Гифки добавляют сообщениям яркости и красочности. Их можно использовать как альтернативу смайликам и стикерам. В мессенджере Телеграмм есть инструмент, который позволяет использовать такие файлы. Ниже мы расскажем, как именно в приложении отправлять и сохранять гифки.

Как отправлять гифки в Телеграмм

Gif-анимации доступны во всех существующих версиях приложения: и в мобильных, и в десктопной. Алгоритм действий в обоих случаях схож, однако есть некоторые различия.

Важно! В Telegram формат *.gif сжимается по размеру и преобразуется в *.mpeg4. Это применяется для того, чтобы увеличить скорость отправления сообщения и уменьшить объем затрачиваемого трафика.

Еще по теме:  Нюанс отгрузки товара на склад Озон

На смартфоне

В мобильных приложениях с ОС iOS и Android отправить СМС с гифкой можно следующим образом:

  1. Запускаем мессенджер.
  2. Выбираем уже существующий диалог или создаем новый.
  3. В окне набора сообщения жмем на символ скрепки.
  4. Выбираем из галереи нужную гифку.
  5. Нажимаем на стрелочку для отправления файла.
  6. Дожидаемся конца загрузки.

Готово, гифка отправлена!

На компьютере

Похожие действия для отправки гифок нужно выполнить в версии ТГ для компьютера:

  1. Открываем программу.
  2. Переходим к диалогу.
  3. Нажимаем на скрепку в окне набор нового СМС.
  4. Выбираем из памяти устройства файл и отправляем его.

Готово! Ваша-гиф анимация отправлена собеседнику.

Видео

Как сохранять гифки из Телеграмма

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

На смартфоне

Для сохранения гиф-анимаций на смартфоне есть два способа:

  • Автоматическое сохранение;
  • Отправка в Избранное.

Автоматическое сохранение

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

Отправка в Избранное

Второй путь включает три действия:

  1. Нажать на три точки на гифки, чтобы открыть ее меню.
  2. Выбрать пункт «Переслать».
  3. Отправить сообщение в диалог Избранного.

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

На ПК

В версии для компьютера действуем похожим образом:

  • Либо пересылаем в Избранное (действия аналогичны мобильной версии);
  • Либо сохраняем файл сами:
  1. Кликаем на гифку правой клавишей мыши.
  2. В списке выбираем «Save file as».
  3. Выбираем место хранения и подтверждаем действие.

Готово, анимация сохранена в памяти вашего компьютера.

Как искать гифки в Телеграмме

В сообщениях вы можете отправлять не только те файлы, которые есть на смартфоне или ПК. Встроенный бот предлагает поиск по гиф-файлам в режиме онлайн. Воспользоваться им можно так:

Как создать гифку

При желании в Телеграм очень легко создать собственную гифку. Ход действий следующий:

  1. Открываем диалог и выбираем пункт «Видео».
  2. Выбираем из галереи короткое видео или записываем ролик онлайн.
  3. После завершения записи откроется окно, в котором необходимо отметить кнопку отключения звука «Mute», также вы можете уменьшить количество кадров с помощью ползунка. Когда все будет готово жмите Отправить.
  4. Телеграм преобразует видео в зацикленную gif-анимацию и добавит ее диалог.

Готово, вы сами создали и отправили гифку!

Видео

Телеграмм – это мессенджер, который позволяет отправлять файлы любых форматов. В том числе – gif-анимации. Функция доступна во всех версиях приложения. Кроме того, Telegram позволяет сохранять полученные гифки в разделе Избранное или в памяти устройства. Также каждый пользователь может создать собственную гифку.

Рекомендуемые сервисы для Telegram:

  • Godlikes — Качественные подписчики по специальной цене! Стоимость 1-го подписчика всего 5,5 рубля! ⚡️ 5 дней контроля отписок!
  • Morelikes — Накрутка просмотров: 128 руб. за 100 шт., подписчиков: боты от 0.74 руб , живые подписчики от 3.36 руб. за 1 шт.
  • Bosslike.ru — ⚡️⚡️⚡️ Бесплатные подписчики и просмотры ⚡️⚡️⚡️
  • Mrpopular — подписчики от 0.14 руб ⚡️; просмотры от 0.09 руб ⚡️

Источник: telegrammix.ru

Рейтинг
( Пока оценок нет )
Загрузка ...