Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Panel1.Handle - обработка изображения [D6, WinXP]


progress ©   (2004-10-27 18:28:00) 

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


debuger   (2004-10-28 15:02:00) [1]

Вроде никак.

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


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

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


debuger   (2004-10-27 19:21:00) [3]

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

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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо