1

いくつかの大きな画像をマルチ画像(ピラミッド型)tifからpng形式に変換しています。最大の画像の「identity-verbose」からのレポートの重要な部分は次のとおりです。

Image: 
  Format: TIFF (Tagged Image File Format)
  Class: DirectClass
  Geometry: 72224x64080+0+0
  Resolution: 72x72
  Print size: 1003.11x890
  Units: PixelsPerInch
  Type: TrueColor
  Base type: TrueColor
  Endianess: MSB
  Colorspace: RGB
  Depth: 8-bit
  Channel depth:
    red: 8-bit
    green: 8-bit
    blue: 8-bit
    ...
  Page geometry: 72224x64080+0+0
    ...
  Scene: 2 of 12
  Compression: JPEG
  Orientation: TopLeft
  Properties:
    ...
  Filesize: 1.389GBB
  Number pixels: 4.6281GB
  Pixels per second: 5.516MB
  User time: 218.277u
  Elapsed time: 13:60.020
  Version: ImageMagick 6.7.1-0 2011-07-06 Q16 http://www.imagemagick.org

この画像でSilverlightマルチスケール画像コントロールの入力を生成するためにdeepzoomコンポーザーを使用するつもりです。私の質問は、ImageMagickでこれらの画像を処理しているときに、どうすればシステムをひざまずくことができるかということです。変換に時間がかかりすぎます。いくつかの記事を見ましたが、どこにも行けないようです。

一部のシステムおよびその他の関連情報:

 OS: Windows 7 64 bit.
 CPU: Intel Core2 Duo E7300 @ 2.66, 2.67
 RAM: 4.0 GB
 PAGEFILE: 8-12GB on non-OS disk
 "MAGICK_TMPDIR": Yet another empty, non-os disk with 140GB available.

「identify-listresource」の結果は次のとおりです。

 File         Area       Memory          Map         Disk    Thread
 ------------------------------------------------------------------
 1536     4.1582GB    15.491GiB    30.981GiB    unlimited         2

このコマンドを実行して、上記で参照されている画像を抽出しています。

convert "myFN.tif[2]" -limit file 8192GB -limit thread 32 "myFN%d.png"

2つの制限値を追加しても、違いは見られませんでした。これを実行すると、平均して約10%のCPU使用率で、ページファイルのコミットサイズは3BGになります。動作していることがほとんどわかりません。

Q1)ImageMagickにさらに多くのシステムリソースを使用させるために他にできることはありますか?私が見つけた「大きな画像」のリンクのほとんどは、反対の質問をしています。

Q2)次の場所にある「policy.xml」値(ファイルなど)の変更:C:\ Program Files \ ImageMagick-6.7.1-Q16 \ www\sourceは何にも影響を与えていないようです-変更は次の項目には表示されませんでした「-listリソースを識別してください。」これにトリックはありますか?

Q3)このタスクに関する他のヒントやアイデアはありますか?

ありがとう、デビッド

4

4 に答える 4

2

あなたの(私の)画像の場合、制限要因はピクセルキャッシュのサイズであり、「MAGICK_AREA_LIMIT」の設定によって制限されます。デフォルトの 4GB は、72224 x 64080 には十分な大きさではありません。これには、少なくとも 4.4GB の設定が必要です。「MAGICK_AREA_LIMIT=8GB」を試してください。

ImageMagick がシステム RAM とシステム ページ ファイルに与える影響を制御したい場合は、「MAGICK_MEMORY_LIMIT 」を使用して制限できます。実際には、ピクセル キャッシュのフォールバック場所はマップされたメモリ ファイルであり、システム ページ ファイルと同じ程度の効率性があるため、大きな制限を使用する必要はあまりありません。「MAGICK_MEMORY_LIMIT=2GB」を試して、ピクセルキャッシュをそこに入れないようにします(とにかくそこに行くわけではありません-12GBよりもはるかに大きいです。)

ピクセル キャッシュをマップされたメモリに移動する必要があるため、" MAGICK_MAP_LIMIT =100GB" を試して、そのスペースを活用してください。メモリにマップされたファイルは、システムの一時ディレクトリではなく、「MAGICK_TMPDIR」で指定されたディレクトリに配置されます。

追加のクレジットとして、16 ビットのカラー チャネルは必要ないため、Q8 バージョンを試すこともできます。そのバージョンでは、ディスク io の約半分が期待できます。

幸運を!デビッド

于 2011-08-03T19:21:56.010 に答える
1

Imagemagick には、大きなファイルを処理するための形式があります ( mpc)。基本的にRAMのディスクスペースを交換します。convert.mpcとで 2 つのファイルが生成さ.cacheれ、小さい方のファイルで imagemagick コマンドを実行でき.mpcます。これらのファイルは、imagemagick の現在のビルドでのみ機能する可能性があるため、アーカイブには適していません。

于 2020-07-10T16:03:37.357 に答える
1

Q8 バージョンでは、Q16 バージョンと比較して、変換を完了するために必要なディスク容量と時間が半分になりました。また、画像をタイルに分割することになる場合は、次のようなコマンドを使用して 1 つの手順で行うことができます。

convert.exe" "WRL_15_1A.tif[2]" -crop 14409x15396 +repage -scene 0 "temp\WRL_15_1A%d.tif"

  • 「[2]」は 3 番目の画像 (解像度が最も高い画像) を呼び出します。
  • -crop パラメーターはそれぞれ幅と高さの 1/4 で、16 個のタイルが得られます。
  • +repage は、すべてのタイルを原点 (0,0) に設定します
  • 「%d」は、「-scene」で設定された # から始まるファイルに番号を付けます。
于 2011-08-03T20:25:49.703 に答える