Форум по 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,553
Версия 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
По умолчанию

Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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, время: 00:52.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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