Por lo que yo puedo decir la única manera de convertir de BitmapSource de mapa de bits es a través de código no seguro ... ¿Te gusta esta (de Lesters WPF blog):¿Existe una buena manera de convertir BitmapSource a Bitmap?
myBitmapSource.CopyPixels(bits, stride, 0);
unsafe
{
fixed (byte* pBits = bits)
{
IntPtr ptr = new IntPtr(pBits);
System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(
width,
height,
stride,
System.Drawing.Imaging.PixelFormat.Format32bppPArgb,ptr);
return bitmap;
}
}
hacer lo contrario:
System.Windows.Media.Imaging.BitmapSource bitmapSource =
System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
bitmap.GetHbitmap(),
IntPtr.Zero,
Int32Rect.Empty,
System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
¿Hay alguna manera más fácil en el marco? ¿Y cuál es la razón por la que no está ahí (si no es así)? Creo que es bastante utilizable.
La razón por la que lo necesito es porque uso AForge para realizar ciertas operaciones de imagen en una aplicación WPF. WPF quiere mostrar BitmapSource/ImageSource pero AForge funciona en Bitmaps.
Para hacer lo contrario, * realmente * ** debe ** eliminar el identificador de mapa de bits que obtiene con 'GetHbitmap'. Este error está en todo internet. No se puede arreglar El mundo está goteando lentamente los identificadores de GDI; pronto estaremos nadando en ellos! –
Thx, para señalar :) – JohannesH
romkyns se refiere a esto: http://stackoverflow.com/questions/1546091/wpf-createbitmapsourcefromhbitmap-memory-leak –