При помощи данной процедуры на Delphi можно узнать высоту и ширину картинки, сохраненной в формате JPEG:
function ReadMWord (f: TFileStream): Word;
type
TMotorolaWord = record
case byte of
0: (Value: Word);
1: (Byte1, Byte2: Byte);
end;
var
MW:TMotorolaWord;
begin
f.Read(MW.Byte2, SizeOf(Byte));
f.Read(MW.Byte1, SizeOf(Byte));
Result := MW.Value;
end;
procedure GetJPGSize (const sFile:String; var wWidth, wHeight: Word);
const
ValidSig: array[0..1] of byte = ($FF, $D8);
Parameterless = [$01, $D0, $D1, $D2, $D3, $D4, $D5, $D6, $D7];
var
Sig: array[0..1] of byte;
f: TFileStream;
x: Integer;
Seg: Byte;
Dummy: array[0..15] of Byte;
Len: Word;
ReadLen: LongInt;
begin
FillChar(Sig, SizeOf(Sig), #0);
f := TFileStream.Create(sFile, fmOpenRead);
try
ReadLen := f.Read(Sig[0], SizeOf(Sig));
for x := Low(Sig) to High(Sig) do
if (Sig[x] <> ValidSig[x]) then
ReadLen := 0;
if (ReadLen > 0) then
begin
ReadLen := f.Read(Seg, 1);
while (Seg = $FF) and (ReadLen > 0) do
begin
ReadLen := f.Read(Seg, 1);
if (Seg <> $FF) then
begin
if (Seg = $C0) or (Seg = $C1) then
begin
ReadLen := f.Read(Dummy[0], 3);
wHeight := ReadMWord(f);
wWidth := ReadMWord(f);
end
else
begin
if not (Seg in Parameterless) then
begin
Len := ReadMWord(f);
f.Seek(Len - 2, 1);
f.Read(Seg, 1);
end
else
Seg := $FF;
end;
end;
end;
end;
finally
f.Free;
end;
end;
Ссылки в тему:
Как узнать размеры PNG-файла?
Как узнать размеры GIF-файла?
Чтобы смотреть любые клипы онлайн, достаточно иметь быстрый Интернет.