ビットマップのコラージュをプレビューとしてレンダリングする必要があるユース ケースがあります。アプリケーションは MVC ベースの REST サービスとして実装されており、私はごく普通の実装をしています。
using (var bitmap = new Bitmap((int)maxWidth, (int)maxHeight))
{
using (var graphic = Graphics.FromImage(bitmap))
{
graphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
// now again for each mod
foreach (var mod in mods)
{
var frame = frames.First(f => f.Index == mod.FrameIndex);
var fileInfo = GetFileInfo(mod);
using (var modImage = Image.FromFile(fileInfo.FullName))
{
graphic.DrawImage(modImage, (int)frame.Left, (int)frame.Top);
}
}
bitmap.Save(previewFileName);
}
}
このコードは正常に動作しますが、パフォーマンスは非常に低くなります (特に大きな画像の場合)。私はサードパーティのライブラリも使用することにオープンです。より高速なソリューションが必要なだけです。
どんな助けでも大歓迎です。
アップデート
ユースケースを明確にするために、キャッシングは役に立ちません。これらの画像は顧客がアップロードした後、選択したコラージュのプレビューを要求します。遅いのはコラージュへの画像の書き込みです。