Pour autant que je sache, le seul moyen de convertir une source de bitmap en bitmap est d'utiliser un code non sécurisé... Comme ceci (de Le blog WPF de Lesters ) :
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;
}
}
Pour faire l'inverse :
System.Windows.Media.Imaging.BitmapSource bitmapSource =
System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
bitmap.GetHbitmap(),
IntPtr.Zero,
Int32Rect.Empty,
System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
Existe-t-il un moyen plus simple dans le framework ? Et quelle est la raison pour laquelle elle n'y figure pas (si elle n'y figure pas) ? Je pense que c'est assez utilisable.
La raison pour laquelle j'en ai besoin est que j'utilise AForge pour effectuer certaines opérations sur les images dans une application WPF. WPF veut afficher BitmapSource/ImageSource mais AForge travaille sur des Bitmaps.