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

Вниз

Скриншот содержимого Mediaplayer a   Найти похожие ветки 

 
alex870   (2008-02-06 11:38) [0]

Здравствуйте!
Уважаемые мастера, у меня задача делать снимок содержимого окна Media Player classic.
Сделал так:
procedure SShot(H: Cardinal;SSDir: String);
var
TimeS : String;
Rect: TRECT;
Bitmap : TBitmap;
Jpg: TJpegImage;
begin
if not DirectoryExists(SSDir) then createdir(SSDir);
 GetWindowRect(H,Rect);
 Bitmap := TBitmap.Create;
 Jpg := TJpegImage.Create;
 with Bitmap do
 begin
   Width :=  Rect.Right-Rect.Left+1;
   Height := Rect.Bottom-Rect.Top;
 end;

 BitBlt(Bitmap.Canvas.Handle,0,0,Bitmap.Width,Bitmap.Height,GetDC(h),-4,-43,SRCcopy);
 jpg.Assign(bitmap);
 jpg.CompressionQuality := 100;
 jpg.Compress;
 TimeS := FormatDateTime("dd",Date)+FormatDateTime("mm",Date)+FormatDateTime("yyyy",Date)+"_"+
        FormatDateTime("hh",Time)+FormatDateTime("nn",Time)+FormatDateTime("ss",Time);

 jpg.SaveToFile(SSDir+TimeS+".jpg");
 jpg.Destroy;
 bitmap.Destroy;
end;


Скриншоты делает, но не всякого видео. Определенные видеофайлы (при воспроизведении) дают скриншот с черным экраном. Т.е. окно плейера видно, а внутри "малевич". Я так понял, что вывод разными кодеками различается. Вопрос, как победить. Код конечно желательно, но не обязательно, главное теория, может есть функции Api, которые получают содержимое определенной поверхности вывода по дескриптору или там всёпроще.
Зарание всем спасибо!


 
@!!ex ©   (2008-02-06 11:40) [1]

Это оверлей.
Только ты ошибаешься там не черный экран, а с цветом 16 0 16
Победить можно указав Медиаплееру в качестве рендера не Overlay.


 
alex870   (2008-02-06 11:51) [2]


> @!!ex ©

Спасибо тебе добрый человек! ;-)
А то я уже руки опустил. Короче все заработало, ну проверю еще разные файлы, а то вариантов там в настройках много. Главное получилось. Спасибо.



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

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

Наверх




Память: 0.47 MB
Время: 0.015 c
15-1257271998
trxnet
2009-11-03 21:13
2010.01.10
2 задачки. Размен денег и произведение многочленов


4-1226307753
DimDim
2008-11-10 12:02
2010.01.10
Лажа с округлениями???


2-1258308164
ℓoℓ
2009-11-15 21:02
2010.01.10
Клавиатура в замену джостику


11-1210345865
Valera
2008-05-09 19:11
2010.01.10
Проблема С PaintBox (Соие программы типа Paint) на чистом kolздан


2-1258386947
Evgnevius
2009-11-16 18:55
2010.01.10
OpenGL не хочет рисовать на битмапе