
Impacchetta fino a 3MB di dati in un file PNG poliglotta tweetabile.
Impacchetta fino a 3 MB di dati in un file PNG poliglotta twittabile.
Vedi in azione qui: https://twitter.com/David3141593/status/1371974874856587268

Altri host di immagini su cui ho verificato che questa tecnica funzioni:
Imgur (https://i.imgur.com/kNhGrN3.png)
Immagine thumbnail/header di repository Github (https://repository-images.githubusercontent.com/348501512/06710f00-8886-11eb-95d1-3f416fa3853a)
Discord (Non una grande sorpresa, dato che supportano comunque file arbitrari) (https://cdn.discordapp.com/attachments/464905259261755392/823171702170845199/06710f00-8886-11eb-95d1-3f416fa3853a.png)
Host di immagini su cui ho confermato che non funziona:
Twitter rimuove i dati non necessari dai caricamenti PNG, tuttavia non rimuove i dati finali dal flusso DEFLATE all'interno del chunk IDAT, a patto che il file immagine complessivo soddisfi i requisiti per evitare di essere ricodificato.
Non lo so.
L'immagine di copertina deve comprimersi bene, in modo che la dimensione compressa sia inferiore a (width * height) - size_of_embedded_file. Se l'immagine di copertina non ha una palette, deve avere almeno 257 colori unici (altrimenti twitter la ottimizzerà per usare una palette).
La risoluzione può arrivare fino a 4096x4096, tuttavia, tieni presente che twitter servirà di default una versione ridimensionata, per immagini più grandi di 680x680 (a seconda del DPI del tuo schermo, ecc.).
L'immagine non dovrebbe avere chunk di metadati non necessari. Ho usato queste impostazioni di esportazione in GIMP:

La dimensione totale del file di output deve essere inferiore a 3 MB (forse 5 MB?), altrimenti twitter convertirà il PNG in JPEG.
Se il file incorporato è un .zip, gli offset vengono automaticamente regolati in modo che il file complessivo sia ancora uno zip valido. Per qualsiasi altro formato di file, sei da solo (molti funzioneranno senza alcuna gestione speciale, in particolare .pdf, .mp3).