2012-03-01 6 views
7

Vorrei ottenere un'immagine GIF dalla rete, ma ho scoperto che se scarica l'immagine GIF intera causerebbe molto traffico di rete.Ottenere il primo fotogramma di un'immagine GIF senza scaricare tutti gli altri fotogrammi

È possibile ottenere solo il primo fotogramma di un'immagine GIF senza scaricare tutti gli altri fotogrammi?

+0

Mi piacerebbe sapere il motivo del down-voting di una domanda totalmente valida. –

+0

Utilizzando la libreria da questo link: https://github.com/dragon66/icafe, sarebbe facile come una chiamata di linea: ImageIO.getReader (ImageType.GIF) .getFrameAsBufferedImage (InputStream is) o ImageIO.getReader (ImageType. GIF) .read (InputStream is). Il tipo restituito sarebbe un Java BufferedImage. – dragon66

risposta

0

Beh, non ho trovato una soluzione pronta per l'uso, ma si può fare in questo modo (che sarà portare a qualche trucchi "di basso livello"):

seguito wiki about GIFs, file gif animato può essere diviso in frame e la fine del frame può essere facilmente riconosciuta. Quindi, dovrai leggere l'intestazione GIF, le informazioni sullo schermo, le informazioni sull'animazione nel buffer, scaricare il primo fotogramma e aggiungere informazioni come GIF è terminato ("3B" seguendo l'articolo wiki). E, se copi questi dati in un bufer separato, sarai in grado di continuare a scaricare interi file senza dover scaricare nuovamente il primo fotogramma.

Inoltre è possibile modificare le informazioni di intestazione per formattare il primo fotogramma in gif statico.

+0

grazie mille. ci sto lavorando. – ctsu

+0

hi eventuali aggiornamenti su questo –

Problemi correlati