5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part8

548 :デフォルトの名無しさん:2011/01/08(土) 13:35:13
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();
}
}



216 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)