バッチイメージリサイクルを最適化することは、画像重いアプリケーション(電子商取引カタログ、ギャラリー、フィード)に不可欠です。 Aspose.Imaging for .NET は、コードを完全に管理し、プラットフォームを横断しながら、効果的に画像をアップロード、再編、暗号化することができます。

完全例

ステップ1:適切なリサイクル戦略を選択する

あなたの出力制限に合った戦略を選択してください:

  • ブロンドボックス(小型用に推奨): 使用 FitInto 画像は内側に合う targetWidth × targetHeight 無歪み(側面比率を維持する)
  • 絶対サイズ(正確なピクセル): 消費者が固定サイズを必要とする場合、絶対リサイクルを使用します(側面比率が異なる場合に歪められる可能性があります)。
  • パーセントスケール: 異なるサイズ(例えば、オリジナルの50%)から均一の下落のためのハンドル。

タイプ: ストアフロントネットワークやソーシャルカードの場合、 FitInto 通常、最も安全なデフォルトです。

ステップ2:コントロールメモリ&キャッシング

Aspose.Imaging は構成可能なキャッシングをサポートするので、大きなバッチは RAM を過剰にしない:

  • 大規模な仕事(SSDサポートパス)のための オンディスクキャッシングを好む。
  • 処理前にキャッシュフォルダーとサイズ予算を設定します。
// Configure once at startup (example values)
Aspose.Imaging.Cache.CacheType   = Aspose.Imaging.Cache.CacheType.CacheOnDisk;
Aspose.Imaging.Cache.CacheFolder = @"D:\imaging-cache";
Aspose.Imaging.Cache.CacheSize   = 1L * 1024 * 1024 * 1024; // 1 GB

また:

  • あらゆる利用 Image 救われるとすぐに。
  • 複数のデコードされた画像を同時に生き残るのを避ける - ファイルごとにプロセス。

ステップ3:安全に並行する

利用 Parallel.ForEach (まつり)は、とりあえず言(い)う。

  • セット MaxDegreeOfParallelism あなたのボックスのための敏感な値(CPUコア、I/Oスピード、メモリヘッドルーム)
  • すべての作業は「自分の仕事」で働く必要があります。 Image 例えば、画像のオブジェクトをライン間で共有しないでください。
  • コンテンツを避けるために、コードのオプションを無変に保管します。

タイトル(英名):Start with MaxDegreeOfParallelism = Environment.ProcessorCount プロフィール後に調整する。

ステップ4:コードと品質を意図的に選択する

  • JPEG 出力の場合、tune ファイルサイズ vs. 品質を使用して JpegOptions.Quality (典型的な甘い点: 75–90) を表示します。
  • 透明性または損失のない生産を必要とする資産の場合、代わりに PngOptions を使用します。
  • 出力フォーマットは使用例ごとに一貫して保持します(例えば、写真用のJPEG、UI用PNG)。

ステップ5:ショートサイクル失敗; バッチを動かす

各ファイルを試用/キャッチ(あなたがしたように)に入力し、パス + 例外を記録します。

  • 非画像ファイルをスキーする(フィルター拡張子を前面に)
  • 貯蓄を確認するためにオリジナルと出力サイズをログインします。
  • 再起動のためのCSVに失敗を書く。

ステップ6: I/O 衛生

  • 出力ディレクトリが存在し、スピードディスク(SSD)にありますようにしてください。
  • 入力で出力を書くのを避け、別々のディレクトリに書き込む。
  • 何百万ものファイルを持っている場合は、ディレクトリリストを速く保つためにサブフォルダーに出力を分割します。

ステップ7:迅速な健康検査で結果を確認する

リサイクル後:

  • 目標に対して幅/高さを確認します。
  • ファイルタイプ/拡張子が使用されたコードと一致することを確認します。
  • 一般的な側面ケース(パノラマ、小さなアイコン、透明なPNG)の視覚品質をポイントチェックします。

最良の実践(チェックリスト)

  • *キャッシュ:*セット CacheType, CacheFolderそして、合理的な CacheSize.
    • パラレル:* 使用 Parallel.ForEach ・TUNED MaxDegreeOfParallelism共有しない Image 例。
    • 常に利用可能* Image 早速。
  • *コード: * 使用 JpegOptions.Quality JPEG に切り替える PngOptions 無損/アルファ
  • I/O: 別々の入力/出力ルーツ; 事前に作成されたディレクトリ。
  • フィルタリング: 充電前に知られている画像拡張子に制限します。
  • ログイン: レコードの故障と基本メトリック(数、MB in/out)
  • 更新プログラム: Aspose.Imaging up to date for ongoing performance improvements.

More in this category