WPF: System.Windows.Interop.InteropBitmap для System.Drawing.Bitmap - PullRequest
2 голосов
/ 04 апреля 2011

Есть ли способ преобразовать System.Windows.Interop.InteropBitmap в System.Drawing.Bitmap?

Спасибо

Ответы [ 3 ]

2 голосов
/ 08 апреля 2011

Мне удалось решить мою проблему, используя код ниже.msg.ThumbnailSource содержит тип объекта System.Windows.Interop.InteropBitmap

BitmapSource bmpSource = msg.ThumbnailSource as BitmapSource;
MemoryStream ms = new MemoryStream();
BitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bmpSource));
encoder.Save(ms);
ms.Seek(0, SeekOrigin.Begin);


System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(ms);
0 голосов
/ 04 апреля 2011

Не могли бы вы объяснить ситуацию немного подробнее?Разве InteropBitmap не предназначен для отображения устаревших растровых элементов в WPF?Похоже, вы пытаетесь перейти с win32 -> WPF -> win32.

0 голосов
/ 04 апреля 2011

Вы можете взять пиксели с помощью CopyPixels и использовать код из документации Bitmap.Lock / Unlock , чтобы передать пиксели в растровое изображение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...