私はこのようなコードを扱っています(ここから)
using (var bmp = new System.Drawing.Bitmap(1000, 1000))
{
IntPtr hBitmap = bmp.GetHbitmap();
var source = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
hBitmap, IntPtr.Zero, Int32Rect.Empty,
System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
}
また、MSDN によると、電話をかけるたびに、管理されていないリソースを解放するためにBitmap.GetHbitmap()
を呼び出す必要があります。DeleteObject()
hBitmap
私が見たすべての答えとMSDNは、DeleteObject()
関数をP/Invokeする必要があると言います。hBitmap
P/Invoke を使用せずに を取得したため、これを適切に取り除くために P/Invoke を突然使用する必要があるため、これは少し正気ではないように見えます。
P/Invoke 以外DeleteObject()
に myを呼び出す方法はありませんhBitmap
か?