Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Мультимедиа
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.10.2007, 15:33
cadil cadil вне форума
Начинающий
 
Регистрация: 24.10.2007
Сообщения: 169
Репутация: 10
По умолчанию Как в видеоплеере организовать кнопку "Фото".

В некоторых мультимедийных плеерах есть кнопка "Фото", которая позволяет сохранить отдельный кадр в формате рисунка, например, *.bmp. Какую инструкцию надо организовать, чтобы при нажатии кнопки, кадр просматриваемый стандартным видеоплеером delphi, записывался, допустим, в другом окне этого же приложения или открывал диалоговое окно "Сохранить рисунок как ...". Встречал исходники, где фрейм AVI-файла сохраняется в формате *.bmp. А как записать отдельный кадр?

Последний раз редактировалось cadil, 24.10.2007 в 15:50.
Ответить с цитированием
  #2  
Старый 24.10.2007, 15:37
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,564
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию

Цитата:
Сообщение от cadil
В некоторых мультимедийных плеерах есть кнопка "Фото", которая позволяет сохранить отдельный кадр в формате рисунка, например, *.bmp. Какую инструкцию надо организовать, чтобы при нажатии кнопки кадр просматриваемый стандартным видеоплеером delphi записывался, допустим, в другом окне этого же приложения или открывал диалоговое окно "Сохранить рисунок как ...". Встречал исходники, где фрейм AVI-файла сохраняется в формате *.bmp. А как записать отдельный кадр?
http://www.delphisources.ru/pages/so...vi_loader.html
Ответить с цитированием
  #3  
Старый 25.10.2007, 09:52
cadil cadil вне форума
Начинающий
 
Регистрация: 24.10.2007
Сообщения: 169
Репутация: 10
По умолчанию

Спасибо!
Очень оперативно. На форуме ixbt эта тема висит около двух недель и ни одного ответа ... Перехожу к вам.
Ответить с цитированием
  #4  
Старый 25.10.2007, 12:57
Аватар для moo2k
moo2k moo2k вне форума
Активный
 
Регистрация: 05.12.2006
Адрес: где-то там...
Сообщения: 321
Репутация: 35
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject); 
var 
  DC: HDC; 
  Canvas: TCanvas; 
  B: TBitmap; 
begin 
  Canvas := TCanvas.Create; 
  B := TBitmap.Create; 
  DC := GetDC(mplayer1.handle); 
  try 
    Canvas.Handle := DC; 
    with MPlayer1 do 
    begin 
      B.Width := Width; 
      B.Height := Height; 
      B.Canvas.CopyRect(Rect(0, 0, Width, Height), 
      Canvas, Rect(0, 0, Width, Height)); 
      B.SaveToFile('c:\cadr.bmp'); 
    end 
  finally 
    ReleaseDC(0, DC); 
    B.Free; 
    Canvas.Free 
  end 

end; 
__________________
Программирование - это искусство и наш смысл жизни.
Ответить с цитированием
  #5  
Старый 26.10.2007, 14:25
cadil cadil вне форума
Начинающий
 
Регистрация: 24.10.2007
Сообщения: 169
Репутация: 10
По умолчанию moo2k

Глубоко признателен за код!
Поставил в исходник стандартного видеоплейера - все заработало.
Осталось две проблемы:
1. Сохраняется рисунок только кнопок плейера. Самостоятельно ввести в качестве переменной MediaPlayer.Display вместо MediaPlayer.handle у меня не получается.
2. Как вывести рисунок (вместо его сохранения в файле) в окно объекта Image?
Спасибо!

Последний раз редактировалось cadil, 26.10.2007 в 16:55.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:22.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter