KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I've found loads of people converting a BitmapSource to a Bitmap , but what about ImageSource to Bitmap ? I am making an imaging program and I need to extract bitmaps from the image displayed in the Image element. Does anyone know how to do this? EDIT 1: This is a function for converting the BitmapImage to a Bitmap . Remember to set the 'unsafe' option in the compiler preferences. public static System.Drawing.Bitmap BitmapSourceToBitmap(BitmapSource srs) { System.Drawing.Bitmap btm = null; int width = srs.PixelWidth; int height = srs.PixelHeight; int stride = width * ((srs.Format.BitsPerPixel + 7) / 8); byte[] bits = new byte[height * stride]; srs.CopyPixels(bits, stride, 0); unsafe { fixed (byte* pB = bits) { IntPtr ptr = new IntPtr(pB); btm = new System.Drawing.Bitmap(width, height, stride, System.Drawing.Imaging.PixelFormat.Format1bppIndexed, ptr); } } return btm; } Next is now to get a BitmapImage : RenderTargetBitmap targetBitmap = new RenderTargetBitmap( (int)inkCanvas1.ActualWidth, (int)inkCanvas1.ActualHeight, 96d, 96d, PixelFormats.Default); targetBitmap.Render(inkCanvas1); MemoryStream mse = new MemoryStream(); System.Windows.Media.Imaging.BmpBitmapEncoder mem = new BmpBitmapEncoder(); mem.Frames.Add(BitmapFrame.Create(targetBitmap)); mem.Save(mse); mse.Position = 0; BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.StreamSource = mse; bi.EndInit(); Next is to convert it: Bitmap b = new Bitmap(BitmapSourceToBitmap(bi));
Tags (comma-separated)
Save Edits
Cancel