Per quanto posso dire l'unico modo per convertire da BitmapSource al bitmap è attraverso codice non sicuro ... Ti piace questa (da Lesters WPF blog):C'è un buon modo per convertire tra BitmapSource e 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;
}
}
di fare il contrario:
System.Windows.Media.Imaging.BitmapSource bitmapSource =
System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
bitmap.GetHbitmap(),
IntPtr.Zero,
Int32Rect.Empty,
System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
C'è un modo più semplice nel framework? E qual è la ragione per cui non è lì (se non lo è)? Penserei che sia abbastanza utilizzabile.
Il motivo per cui ho bisogno è che utilizzo AForge per eseguire determinate operazioni dell'immagine in un'app WPF. WPF vuole mostrare BitmapSource/ImageSource ma AForge funziona su Bitmap.
Per eseguire l'operazione inversa, * * * * deve ** eliminare l'handle bitmap ottenuto con 'GetHbitmap'. Questo bug è su Internet. È inspiegabile. Il mondo sta lentamente perdendo maniglie GDI; presto nuoteremo in loro! –
Thx, per indicare :) – JohannesH
romkyns si riferisce a questo: http://stackoverflow.com/questions/1546091/wpf-createbitmapsourcefromhbitmap-memory-leak –