Насколько я могу судить, единственный способ конвертировать из BitmapSource в Bitmap - это небезопасный код... Как это (из Lesters Блог WPF):
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;
}
}
Сделать обратное:
System.Windows.Media.Imaging.BitmapSource bitmapSource =
System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
bitmap.GetHbitmap(),
IntPtr.Zero,
Int32Rect.Empty,
System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
Есть ли более простой способ в рамках? И в чем причина этого не там (если это не так)? Я думаю, что это справедливо.
Причина, в которой я нуждаюсь, заключается в том, что я использую AForge для выполнения определенных операций с изображениями в приложении WPF. WPF хочет показать BitmapSource/ImageSource, но AForge работает с растровыми изображениями.