クリップボードへの大きな画像によりコンピューターがフリーズする


16

だから私はいくつかの高さマップ画像をいじくり回していて、これを見つけました:

http://upload.wikimedia.org/wikipedia/commons/1/15/Srtm_ramp2.world.21600x10800.jpg

この画像は、ブラウザから「画像をコピー」を右クリックしたときに21600x10800です(クロムを使用しています)。フリーズするまでコンピュータの速度が低下します。その後、再起動する必要があります。私はこれがなぜ起こるのか興味がありますが、それは画像のサイズだと思いますが、保存されたときのサイズはわずか約6MBです。

Windows 8.1も使用しています

回答:


21

「画像のコピー」は、画像ファイル自体ではなく、生の画像データをクリップボードにコピーします。

生の画像データは21600 x 10800 x 3(24ビット画像)= 699,840,000バイトのデータになります。これは、ブラウザがクリップボードに突入しようとしている約700MBのデータです。

JPEGは非可逆アルゴリズムを使用して生データを圧縮し、非常に良好な圧縮を得ることができます。したがって、圧縮ファイルはわずか6MBです。

コンピューターが遅くなる理由は、おそらくブラウザーが画像を表示するために使用している少なくとも700MBの画像データ、およびクリップボードに保存する別の700MB(クリップボードに発生するオーバーヘッド)でメモリがいっぱいになるためですクリップボードと画像をクリップボードに保存できる形式に変換するための取るに足らない量の処理能力。

物理RAMが4GB以下の場合、これらのイメージデータのコピーにより、両方のメモリ要求を同時に満たそうとして、コンピュータがメモリをスワップファイルに強制的にページングする可能性があります。これにより、ディスクを使用し、ページアウトされたばかりのデータを使用しようとするため、プログラムとディスクアクセスが遅くなります。

要するに、大量のメモリと少しの余裕がある場合を除き、クリップボードを大きな画像に使用しないでください。

きれいなグラフが好きですか?これは、Chromeでその画像をロードしてから、12GBのRAMを搭載したマシンのクリップボードにコピーすると発生します:

ここに画像の説明を入力してください

2.8GBのRAMを使用して下部から開始し、画像を読み込むと3.6GB(約700MB程度)までパンチされ、クリップボードにコピーしてから6.3GBのRAMにスパイクしてから、プログラムと、かなり大きなイメージの2つのコピーで見られる4.5っぽい。

これは、ピーク時に処理されている途方もない3.7GBの画像データです。これはおそらく初期画像、クリップボード用に予約された量、そしておそらくいくつかの変換バッファーです。これは、RAMが8GB未満のマシンをひざまずくには十分です。

Firefoxで不思議なことに同じことをすると、恐ろしいメモリサージなしに画像データではなく画像ファイルがコピーされます


モクバイには権利があります。この画像は、ほとんどのコンピューターのクリップボードを驚かせます。その画像を場所に移動する必要がある場合は、保存するか、右クリックして[画像の場所をコピー]コマンドを使用する必要があります。
TorpedoBench

私はWindows 7で仲間にそれをしてもらいました。彼は1〜3秒の遅れを報告しました。ブラウザとRAM容量を尋ねる必要があります。
常Jobディロン

うん。私のマシンではほとんど瞬時でしたが、かなりの量のRAMがあります。8GB未満の場合、マシンが苦労しても驚かないでしょう。
木梅

@木梅:私は完全に確信しているわけではありません。クリップボードに700 MBを取得するために700 MBのファイルをダウンロードする必要はありませんか?そして、私が試したように、そのファイルは間違いなく700MBよりも小さいです。
ショート理論

1
@shortstheoryファイル自体は7mbのみですが、jpg画像であるため、高度に圧縮されています。実際の画像データは約700mbです。7mbのダウンロードで表示されるのは、画像の圧縮表現です。プログラムが実際に画像を表示するには、まず圧縮を解除する必要があり、クリップボードに置かれているのはデータ(ファイル自体ではありません)です。
木梅
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.