Connaitre les dimensions d'un GIF sans composant spécifique

type
TImageSize = record
Width: Integer;
Height: Integer;
end;

function ReadGIFSize(Stream: TStream): TImageSize;
type
TG if Header = record
Signature: array [0..5] of Char;
Width, Height: Word;
end;
var
Header: TG if Header;
begin
FillChar(Header, SizeOf(TG if Header), #0);
Result.Width := -1;
Result.Height := -1;
with Stream do
begin
Seek(0, soFromBeginning);
ReadBuffer(Header, SizeOf(TG if Header));
end;
if (AnsiUpperCase(Header.Signature) = 'GIF89A') or
(AnsiUpperCase(Header.Signature) = 'GIF87A') then
begin
Result.Width := Header.Width;
Result.Height := Header.Height;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
const
FileName = 'D: est.g if ';
var
fs: TFileStream;
g if size: TImageSize;
begin
fs := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
try
g if size := ReadGIFSize(fs);
ShowMessage(Format('Largeur %d Hauteur %d', [g if size.Width, g if size.Height]));
finally
fs.Free;
end;
end;
Ajouter un commentaire
Pseudo
Adresse email
Site internet (optionnel)
Votre commentaire
Fiche de l'article
Mise a jour22/08/2004
VisualisationVu 1535 fois
PublicInternaute zz
CategorieDelphi - Trucs et astuces - Graphisme
Auteur de l'article
SwissDelphiCenter SwissDelphiCenter
connecté le 02/11/2011
329 articles dans la section
Contacter l'auteur