バッチイメージリサイクルを最適化することは、画像重いアプリケーション(電子商取引カタログ、ギャラリー、フィード)に不可欠です。 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
・TUNEDMaxDegreeOfParallelism
共有しないImage
例。
- パラレル:* 使用
- 常に利用可能*
Image
早速。
- 常に利用可能*
- *コード: * 使用
JpegOptions.Quality
JPEG に切り替えるPngOptions
無損/アルファ - I/O: 別々の入力/出力ルーツ; 事前に作成されたディレクトリ。
- フィルタリング: 充電前に知られている画像拡張子に制限します。
- ログイン: レコードの故障と基本メトリック(数、MB in/out)
- 更新プログラム: Aspose.Imaging up to date for ongoing performance improvements.