System.Drawing.Bitmap から BitmapSource を生成してファイルを保存しているのですが
何10ヶも繰り返していると OutOfMemoryException が発生してしまいます。
海外サイトでも取り上げられていて、同じように実装しているのですがどうしても
発生してしまいます。
何か問題ありますでしょうか?

[DllImport("gdi32.dll")]
public static extern bool DeleteObject(IntPtr hObject);

string[] srcFiles = Directory.GetFiles(srcFolder, "*.jpg");
Array.Sort(srcFiles);

if (!Directory.Exists(dstFolder))
Directory.CreateDirectory(dstFolder);

foreach (string name in srcFiles)
{
using (Bitmap srcImage = new Bitmap(name))
{
string dstName = Path.Combine(dstFolder, Path.GetFileName(name));
IntPtr ptr = srcImage.GetHbitmap();
BitmapSource bs = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
ptr, IntPtr.Zero, Int32Rect.Empty,BitmapSizeOptions.FromEmptyOptions());

DeleteObject(ptr);
bs = null;
GC.Collect();
}
}