解像度が18984x28591pxの画像がありますが、ペイントまたはPixlr Editorでサイズを小さくすることはできません。
この大きな画像をラップトップで変換または開くにはどうすればよいですか?
解像度が18984x28591pxの画像がありますが、ペイントまたはPixlr Editorでサイズを小さくすることはできません。
この大きな画像をラップトップで変換または開くにはどうすればよいですか?
回答:
UbuntuでImageMagickを使用して、これらの大きな画像のサイズを変更しました。
convert -resize 10% source.jpg dest.jpg
少し時間がかかりましたが、1 GBのRAMで動作し、ツールはそれ自体で4.7 GBのスワップのようなファイルを作成しました。
詳細はAskUbuntuをご覧ください。
convert -resize 1898x2859 ...
理論的には、ほとんどの画像フォーマットは、画像全体をメモリにロードせずに段階的にダウンスケールできますが、JPEGを除き、そのような機能を実際に実装するツールは知りません。また、DCTの創造的な使用のおかげで、フル解像度をデコードせずにダウンスケールします(JPEGは周波数ドメインでエンコードされるため、元の画像とまったく同じ解像度にデコードする必要はありません)。
デフォルトJPEGデコードツール「通常の」アプリケーションもそれをロードし終えることができる前に、(コマンドライン、Linuxでのlibjpeg-progsのパッケージ、Windows用djpeg.exeのための外観は)巨大なJPEGをダウンスケールします。
djpeg -scale 1/8 huge_image_that_will_not_fit_in_your_ram.jpg >downscaled.ppm
一部のGUIアプリケーションでも読み込み中のダウンスケールオプションを見てきましたが、現時点では思い出せません。
ImageMagickとdjpegのメモリ使用量と処理時間を比較して、大きな画像を縮小します(cjpegにパイプするため、convertとの公平な比較のために、結果の画像もjpgになります)
$ display -verbose input.jpg
input.jpg JPEG 13114x11722 13114x11722+0+0 8-bit sRGB 30.75MB 6.690u 0:06.699
$ /usr/bin/time -f "time=%E mem=%MK" bash -c "convert input.jpg -scale '12.5%' output.jpg"
time=0:10.72 mem=1225844K
$ /usr/bin/time -f "time=%E mem=%MK" bash -c "djpeg -scale 1/8 input.jpg | cjpeg > output2.jpg"
time=0:00.88 mem=1412K
1,2GB対1,4MBで、10倍以上遅い-これは比較的小さな13k x 11kイメージで、RAMに完全に収まるため、スワッピングは発生しませんでした。
一方、ダウンスケーリングにdjpegを使用することにも独自の制限があります。スケーリング係数の選択には制限があり、リサンプリング方法は変更できません。
WindowsでPicture Resizerを使用することもできます(このツールが大好きです)
この単純なEXEに画像をドラッグアンドドロップするだけです。一度に多くのことができるので、変換する画像がたくさんある場合は特に便利です。
すべての設定は、素晴らしいIMOであるEXEの命名を通じて行われます
ただし、巨大なファイルで試したことはありません。