Попытка использовать Spring LDAP для кодирования

Я нашел множество людей, конвертирующих BitmapSource в Bitmap , а как насчет ImageSource в Bitmap ? Я создаю программу обработки изображений, и мне нужно извлечь растровые изображения из изображения, отображаемого в элементе Image . Кто-нибудь знает, как это сделать?

РЕДАКТИРОВАТЬ 1:

Это функция для преобразования BitmapImage в Bitmap . Не забудьте установить параметр «небезопасно» в настройках компилятора.

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;
}

Теперь нужно получить 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();

Далее нужно преобразовать его:

Bitmap b = new Bitmap(BitmapSourceToBitmap(bi));
18
задан Massimiliano Kraus 1 April 2017 в 20:27
поделиться