Наложение текста с прозрачным фоном на 24-битный канал веб-камеры - PullRequest
0 голосов
/ 10 августа 2011

Я использую библиотеку DirectShow.Net для отображения канала с веб-камеры. Я создал граф захвата с интерфейсом ISampleGrabber, который использует обратный вызов, содержащий указатель на буфер видеокадра. Я использую этот указатель для создания растрового изображения .net и объекта Graphics, который я использую для наложения некоторого красного текста с помощью метода Graphics.DrawString. Это принимает параметр объекта Brush. Когда я рисую текст, он отображается в многоцветном, а не красном цвете. Кисть правильная, потому что я использую предустановленные кисти. Красный. На данный момент я считаю, что это связано с тем, что кисть рисует в 32bpp, а изображение с веб-камеры - 24bpp. Я мог бы создать временное растровое изображение 24bpp, нарисовать на нем текст, а затем наложить его на видеокадр, но это не даст мне текст с прозрачным фоном.

Есть идеи? (простые предпочтительнее)

Спасибо

1 Ответ

0 голосов
/ 10 августа 2011

Я думаю, что есть решение: создайте новое растровое изображение с 32bpp, используйте эту растровую графику, чтобы нарисовать изображение веб-камеры на нем "Graphics.FromImage(ourNewBitmap).Draw(theWebcam24Image)", и используйте ту же графику, чтобы нарисовать строку, после этого создайте новое 24 растровое изображение и нарисуйте сгенерированное растровое изображение, затем добавьте последнее сгенерированное изображение в веб-камеру.

...