Comment obtenir l'image gif animée à partir du presse-papiers du navigateur api?

Je teste le code suivant, et quand je copie un gif animé et le collage sur la page Web, je vois image/png dans la console – au lieu d' image/gif comme prévu.

Pourquoi?

 document.onpaste = function(event) { console.log(event.clipboardData.items[1]['type']); // 'image/png' }; 

Comment puis-je faire correspondre une image gif?

Vous pouvez le tester à ce jsfiddle avec cette image gif par exemple.

Le format du presse-papiers CF_GIF est très rarement utilisé. La plupart des applications copient des images dans le presse-papiers uniquement sous CF_BITMAP, CF_ENHMETAFILE ou CF_DIB. Ensuite, lorsque vous collez, les données sont converties en format quel que soit l'application cible, comme PNG ou Bitmap. Donc, dans votre cas, le GIF a probablement été copié dans le presse-papiers en tant que Bitmap, puis converti en PNG lors du collage. Tous les cadres d'animation de votre GIF ont été perdus. Pour préserver, vous devez faire glisser / déposer ou imiter le collage de fichiers avec CF_HDROP, CF_FileName, etc.

Lorsque vous copiez une image gif par (je suppose), cliquez avec le bouton droit de la souris sur l'image, puis "copier l'image", puis vous copiez la trame actuelle à la place de l'intégralité du fichier. Si vous souhaitez capturer le fichier entier, je suggère de le capturer dans un événement de glisser-déposer.