
Упакуйте до 3 МБ данных в твитабельный PNG-полиглот файл.
Упакуйте до 3 МБ данных в твитируемый PNG-полиглот файл.
Посмотрите в действии здесь: https://twitter.com/David3141593/status/1371974874856587268

Другие хостинги изображений, на которых я проверил работу этой техники:
Imgur (https://i.imgur.com/kNhGrN3.png)
Миниатюра/заголовок репозитория GitHub (https://repository-images.githubusercontent.com/348501512/06710f00-8886-11eb-95d1-3f416fa3853a)
Discord (Неудивительно, так как они в любом случае поддерживают произвольные файлы) (https://cdn.discordapp.com/attachments/464905259261755392/823171702170845199/06710f00-8886-11eb-95d1-3f416fa3853a.png)
Хостинги изображений, на которых, как я подтвердил, это не работает:
Twitter удаляет лишние данные из загружаемых PNG, однако он не удаляет хвостовые данные из потока DEFLATE внутри блока IDAT при условии, что изображение в целом соответствует требованиям, чтобы избежать перекодирования.
Не знаю.
Изображение-обложка должно хорошо сжиматься, так, чтобы сжатый размер файла был меньше
(width * height) - size_of_embedded_file. Если изображение-обложка не имеет
палитры, то в нём должно быть как минимум 257 уникальных цветов (иначе Twitter
оптимизирует его для использования палитры).
Разрешение может быть до 4096x4096, однако имейте в виду, что Twitter по умолчанию будет предоставлять уменьшенную версию для изображений размером более 680x680 (в зависимости от DPI вашего дисплея и т.д.).
Изображение не должно содержать ненужных блоков метаданных. Я использовал эти настройки экспорта в GIMP:

Общий размер выходного файла должен быть меньше 3 МБ (может быть, 5 МБ?), иначе Twitter преобразует PNG в JPEG.
Если внедрённый файл — .zip, то смещения автоматически корректируются,
так что итоговый файл остаётся корректным zip. Для любых других форматов
файлов вы сами по себе (многие будут работать без специальной обработки,
особенно .pdf, .mp3).