Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

Panel1.Handle - обработка изображения   Найти похожие ветки 

 
progress   (2004-10-27 18:28) [0]

У меня есть примерчик использования видеозахвата (DirectShow). Работает, выводит результат на панель ... А мне надо взять это изображение и поместить, например, в TImage, для дальнейщей обработки.
 пробовал:
 Image1.Canvas.Handle := GetDC(Panel1.Handle) - не выходит, а как мне всё таки решить данную проблему???


 
debuger ©   (2004-10-27 19:21) [1]

Вроде так. С панельки кадр сдираю в битпаму.

var
 srcDC, destDC: HDC;
 hbm: HBITMAP;
 currentFrame: Graphics.TBitMap;

begin
 currentFrame := TBitMap.Create;

 srcDC := GetDC( Panel1.Handle );
 destDC := CreateCompatibleDC( srcDC );

 // создаем битпам
 hbm := CreateCompatibleBitMap( srcDC,
            width,
            height );

 SelectObject( destDC, hbm );

 // копируем содержимое
 BitBlt( destDC, 0, 0, width, height,
         srcDC, 0, 0, SRCCOPY );

 currentFrame.Handle := hbm;

 // используем текущий кадр сдертый в битмап

 // после использования удаляем все лишнее
 DeleteDC( destDC );
 ReleaseDC( Panel1.Handle );
 DeleteObject( hbm );
end;


 
progress   (2004-10-28 10:07) [2]

Возникла ещё одна проблемма:
 а как бороться с тем, что когда панель находится не полностью на экране (точнее в её видимой части), при сохранении в файл изображения с битмамы, то картинка получается малось "обрезанная". Часть та которая была в видимой части экрана видна, а та которая выходила за её пределы просто ... белая?


 
debuger ©   (2004-10-28 15:02) [3]

Вроде никак.

Например, можно рисовать на рабочем столе :) Он за пределы не уйдет.



Страницы: 1 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
14-1098016249
GanibalLector
2004-10-17 16:30
2004.11.14
Киев ???


3-1098090555
Layner
2004-10-18 13:09
2004.11.14
Помогите парсировать SQL запрос


14-1098558826
CPUz80
2004-10-23 23:13
2004.11.14
Работа процессов в WIN32.


14-1098798518
oldman
2004-10-26 17:48
2004.11.14
Я ЕЕ ТАКИ РЕШИЛ!!!


4-1097126691
CJ Shark
2004-10-07 09:24
2004.11.14
Как писать биты напрямую в LPT в WinXP?