Программирование на Delphi и не только Как узнать размеры PNG-файла? | Программирование на Delphi и не только

Delphi FAQ >> Графика

При помощи данной процедуры на Delphi можно узнать высоту и ширину картинки, сохраненной в формате PNG:

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 GetPNGSize(const sFile: Stringvar wWidth, wHeight: Word);
type
  TPNGSig=array[0..7] of byte;
const   ValidSig:TPNGSig=(137, 80, 78, 71, 13, 10, 26, 10);

var
  Sig: TPNGSig;

  f: tFileStream;   x: Integer;

begin
  FillChar(Sig, SizeOf(Sig), #0);

  f:=TFileStream.Create(sFile, fmOpenRead);

  try
    f.Read (Sig[0], SizeOf(Sig));


    for x:=Low (Sig) to High(Sig) do
      if (Sig[x]ValidSig[x]) then
        exit;       f.Seek (18, 0);       wWidth := ReadMWord (f);       f.Seek(22, 0);       wHeight := ReadMWord(f);

  finally
    f.Free;


  end;
end;

Ссылки в тему:
  Как узнать размеры JPG-файла?
  Как узнать размеры GIF-файла?

Из всех мобилок всегда предпочитал Samsung. Отличное качество по хорошей цене. Но один раз пришлось обратиться в фирму, которая делаетремонт сотовых телефонов samsung — после ремонта телефон как новенький.