9

次のコードをテストしています。アニメーションGIFをコピーしてWebページに貼り付けると、期待どおりimage/pngではなく、コンソールに表示image/gifされます。

なんで?

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

gif画像を一致させるにはどうすればよいですか?

たとえば、このjsfiddleこのgif画像を使用してテストできます。

4

2 に答える 2

4

CF_GIFクリップボード形式はほとんど使用されません。ほとんどのアプリは、画像をCF_BITMAP、CF_ENHMETAFILE、またはCF_DIBとしてのみクリップボードにコピーします。次に、貼り付けると、データは、PNGやビットマップなど、ターゲットアプリケーションが提供する形式に変換されます。したがって、あなたの場合、GIFはビットマップとしてクリップボードにコピーされ、貼り付け時にPNGに変換された可能性があります。GIFのアニメーションフレームがすべて失われました。保存するには、CF_HDROP、CF_FileNameなどを使用してファイルの貼り付けをドラッグ/ドロップまたはエミュレートする必要があります。

于 2013-02-18T21:53:39.693 に答える
1

画像を右クリックして「画像をコピー」してgif画像をコピーすると、ファイル全体ではなく現在のフレームがコピーされます。ファイル全体をキャプチャする場合は、ドラッグアンドドロップイベントでキャプチャすることをお勧めします。

于 2013-02-18T21:47:33.553 に答える