Текущий архив: 2006.02.12;
Скачать: CL | DM;
ВнизКак захватить кадр, используя DirectShow ? Найти похожие ветки
← →
palgen © (2005-08-31 14:40) [0]Подскажите как с помошью DirectShow получать картинку в буфер обмена (из видеопотока, допустим, раз в секунду) с разрешением 720*576, а затем (ежесекундно) помещать этот захваченный кадр на TImage ?
← →
palgen © (2005-09-02 07:07) [1]Неужели никто не знает ?
← →
Ботвин Дмитрий (2005-09-02 08:16) [2]DSPack тебе поможет. Там в примерах уже что-то подобное реализовано...
← →
palgen © (2005-09-02 09:30) [3]Как можно выставить разрешение сграбленного фрейма ...
Лучше кодом, а то в хелпе DSPack я этого не нашел ...
← →
Ботвин Дмитрий (2005-09-02 13:13) [4]Для JPEG можно так:
procedure GetResJpg(JPGFile: string);
const
BufferSize = 50;
var
Buffer: string;
Index: integer;
FileStream: TFileStream;
HorzRes, VertRes: Word;
DP: Byte;
Measure: string;
begin
FileStream := TFileStream.Create(JPGFile,
fmOpenReadWrite);
try
SetLength(Buffer, BufferSize);
FileStream.Read(buffer[1], BufferSize);
Index := Pos("JFIF" + #0$00,buffer);
if Index > 0 then
begin
FileStream.Seek(Index + 6, soFromBeginning);
FileStream.Read(DP, 1);
case DP of
1: Measure := "DPI"; //Dots Per Inch
2: Measure := "DPC"; //Dots Per Cm.
end;
FileStream.Read(HorzRes, 2); // x axis
HorzRes := Swap(HorzRes);
FileStream.Read(VertRes, 2); // y axis
VertRes := Swap(VertRes);
end
finally
FileStream.Free;
end;
end;
procedure SetResJpg(name: string; dpix, dpiy: Integer);
const
BufferSize = 50;
DPI = 1; //inch
DPC = 2; //cm
var
Buffer: string;
index: INTEGER;
FileStream: TFileStream;
xResolution: WORD;
yResolution: WORD;
_type: Byte;
begin
FileStream := TFileStream.Create(name,
fmOpenReadWrite);
try
SetLength(Buffer, BufferSize);
FileStream.Read(buffer[1], BufferSize);
index := POS("JFIF" + #0$00,buffer);
if index > 0
then begin
FileStream.Seek(index + 6, soFromBeginning);
_type := DPI;
FileStream.write(_type, 1);
xresolution := swap(dpix);
FileStream.write(xresolution, 2);
yresolution := swap(dpiy);
FileStream.write(yresolution, 2);
end
finally
FileStream.Free;
end;
end;
а для bmp поищи в инете - примеров много...
← →
vrem (2005-09-02 19:18) [5]зачем 720, 768*576 захватывается
← →
palgen © (2005-09-05 07:52) [6]vrem (02.09.05 19:18) [5]
зачем 720, 768*576 захватывается
А каким образом ?
← →
vrem (2005-09-05 19:21) [7][6] palgen © (05.09.05 07:52)
>А каким образом ?
dscaler, www.dscaler.org, с исходными кодами - но вроде не на дельфи. Причём я рассматривал получающуюся картинку - там нет повторений, все 768 точек разные. обычно отбрасываются, т.к. тв плохо отображает по краям экрана
Страницы: 1 вся ветка
Текущий архив: 2006.02.12;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.038 c