
Empaqueta hasta 3 MB de datos en un archivo PNG políglota que se puede tuitear.
Empaqueta hasta 3MB de datos en un archivo PNG poliglota tweeteable.
Véalo en acción aquí: https://twitter.com/David3141593/status/1371974874856587268

Otros hosts de imágenes en los que he verificado que esta técnica funciona:
Imgur (https://i.imgur.com/kNhGrN3.png)
Github repo thumbnail/header image (https://repository-images.githubusercontent.com/348501512/06710f00-8886-11eb-95d1-3f416fa3853a)
Discord (No es una gran sorpresa, ya que soportan archivos arbitrarios de todas formas) (https://cdn.discordapp.com/attachments/464905259261755392/823171702170845199/06710f00-8886-11eb-95d1-3f416fa3853a.png)
Hosts de imágenes en los que he confirmado que no funciona:
Twitter elimina datos innecesarios de las subidas PNG, sin embargo, no elimina los datos finales del flujo DEFLATE dentro del fragmento IDAT, siempre que el archivo de imagen general cumpla con los requisitos para evitar ser recodificado.
No sé.
La imagen de portada debe comprimirse bien, de modo que el tamaño comprimido sea menor que (width * height) - size_of_embedded_file. Si la imagen de portada no tiene una paleta, entonces debe tener al menos 257 colores únicos (de lo contrario, twitter la optimizará para usar una paleta).
La resolución puede ser de hasta 4096x4096, sin embargo, tenga en cuenta que twitter servirá una versión reducida por defecto, para imágenes mayores de 680x680 (dependiendo de los DPI de su pantalla, etc.).
La imagen no debe tener fragmentos de metadatos innecesarios. Usé estos ajustes de exportación en GIMP:

El tamaño total del archivo de salida debe ser menor de 3MB (¿quizás 5MB?), de lo contrario twitter convertirá el PNG a JPEG.
Si el archivo incrustado es un .zip, entonces los offsets se ajustan automáticamente para que el archivo completo siga siendo un zip válido. Para cualquier otro formato de archivo, usted está solo (muchos funcionarán sin ningún manejo especial, notablemente .pdf, .mp3).