Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2017, 17:03   #11
Vyacheslav.
Форумчанин
 
Регистрация: 22.10.2017
Сообщений: 113
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Спасибо, попробую.
Vyacheslav. вне форума Ответить с цитированием
Старый 14.12.2017, 17:05   #12
Vyacheslav.
Форумчанин
 
Регистрация: 22.10.2017
Сообщений: 113
Сообщение

Цитата:
Сообщение от Аватар Посмотреть сообщение
Прозрачная панель с прозрачным image поверх другой панели с картинкой. Что там будет над панелью с видео сам смотри
В вашем способе картинка становится прозрачной через несколько раз.
Изображения
Тип файла: jpg giKQsGJyTVs.jpg (67.8 Кб, 126 просмотров)
Тип файла: jpg OSvB4FA5G4E.jpg (54.8 Кб, 119 просмотров)
Vyacheslav. вне форума Ответить с цитированием
Старый 14.12.2017, 17:36   #13
Vyacheslav.
Форумчанин
 
Регистрация: 22.10.2017
Сообщений: 113
По умолчанию

Почему если хотя бы чуть чуть передвинуть форму - картинка исчезает?
Vyacheslav. вне форума Ответить с цитированием
Старый 14.12.2017, 20:22   #14
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Попробуйте вот этот код

Код:
 procedure TForm1.FormCreate(Sender: TObject);
begin
  //Делаем панель вывода изображения прозрачной чтобы не мешала для вывода изображения на форме уже с эффектами
  Windows.SetParent(Panel1.Handle, 0);
  SetWindowLong(Panel1.Handle, GWL_EXSTYLE, WS_EX_LAYERED + WS_EX_TOOLWINDOW);
  if not SetLayeredWindowAttributes(Panel1.Handle, 0, 0, LWA_ALPHA) then
  ShowMessage(SysErrorMessage(GetLastError));

MediaPlayer1.DeviceType:= dtAutoSelect;
MediaPlayer1.FileName := 'D:\MP3\1279614330.avi';
Timer1.Interval:= 1;
MediaPlayer1.Open;
MediaPlayer1.DisplayRect := Panel1.ClientRect;
MediaPlayer1.Play;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
mainDC: HDC;
titleBmp, Bitmap: TBitmap;
begin
MediaPlayer1.Display:=Panel1;
if MediaPlayer1.Mode = mpPlaying then
begin
//Захватываем графический хендел панели
mainDC:= GetDC(MediaPlayer1.Display.Handle);
Bitmap:= TBitmap.Create;
titleBmp:= TBitmap.Create;
try
//Рисуем кадр в Bitmap
Bitmap.Handle:= CreateCompatibleBitmap(mainDC, MediaPlayer1.Display.Width, MediaPlayer1.Display.Height);
BitBlt(Bitmap.Canvas.Handle, 0, 0, Bitmap.Width, Bitmap.Height, mainDC, 0, 0, SRCCOPY);

//открываем рисунок
titleBmp.LoadFromFile('d:\Fone.bmp');
titleBmp.Transparent:= true;

//Рисуем рисунок в кадре смещая его в нижнюю часть окна
Bitmap.Canvas.Draw(0, Bitmap.Height - titleBmp.Height - 10, titleBmp);

//Показываем на форме
Form1.Canvas.Draw(MediaPlayer1.Display.Left, MediaPlayer1.Display.Top, Bitmap);
finally
Bitmap.Free;
titleBmp.Free;
ReleaseDC(MediaPlayer1.Display.Handle, mainDC);
end;
end;
end;
Над эффектами наложения картинки нужно еще поработать
Изображения
Тип файла: jpg Video.jpg (61.4 Кб, 134 просмотров)
Вложения
Тип файла: rar MediaPlayer.rar (176.3 Кб, 22 просмотров)

Последний раз редактировалось Aliens_wolfs; 14.12.2017 в 21:36.
Aliens_wolfs вне форума Ответить с цитированием
Старый 14.12.2017, 21:16   #15
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
В вашем способе картинка становится прозрачной через несколько раз
Ну очевидно же, что такой способ с видео не пройдет, разве что по таймеру перерисовывать верхнюю панель )) Зато знаешь теперь как панель прозрачной сделать ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.12.2017, 21:22   #16
Vyacheslav.
Форумчанин
 
Регистрация: 22.10.2017
Сообщений: 113
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Попробуйте вот этот код
Теперь при передвижении картинка не исчезает, но видео отрисовалось в определенном месте, и оттуда не перемещается, я форму могу передвигать куда угодно, но видео вместе с ней не движется.
Vyacheslav. вне форума Ответить с цитированием
Старый 14.12.2017, 21:37   #17
Vyacheslav.
Форумчанин
 
Регистрация: 22.10.2017
Сообщений: 113
Сообщение

Ошибку выбивает.
Изображения
Тип файла: png error.png (7.7 Кб, 137 просмотров)
Vyacheslav. вне форума Ответить с цитированием
Старый 14.12.2017, 21:45   #18
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Попробуй проект что я залил в посте #14 у меня он нормально работает, наложенную картинку пробую сгладить
Aliens_wolfs вне форума Ответить с цитированием
Старый 14.12.2017, 21:46   #19
Vyacheslav.
Форумчанин
 
Регистрация: 22.10.2017
Сообщений: 113
По умолчанию

Так-же, видео на месте, форма движется и отображает определенные участки видео, а видео же должно вместе с ней перемещаться.
Vyacheslav. вне форума Ответить с цитированием
Старый 14.12.2017, 21:48   #20
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Проект скачайте с поста #14 вот ссылка http://www.programmersforum.ru/attac...3&d=1513276495
В нем путь к своим файлом поменяйте.
Сейчас еще кое что доделаю в нем

Последний раз редактировалось Aliens_wolfs; 14.12.2017 в 21:51.
Aliens_wolfs вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как наложить маленькую картинку поверх большой Jarerd WordPress и другие CMS 3 03.12.2018 11:11
Как рисовать поверх видео DirectShow ???? FarStar Visual C++ 7 17.06.2011 12:57
Текст поверх видео... kotzzz Мультимедиа в Delphi 3 11.04.2010 21:01
Как наложить полупрозрачный рисунок поверх видео. jocry Мультимедиа в Delphi 3 03.11.2009 09:22
Картинка поверх видео deadly Мультимедиа в Delphi 1 24.05.2007 22:42