Tester dans un tpicture si l'image est au format gif

0/5 (1 avis)

Snippet vu 3 923 fois - Téléchargée 31 fois

Contenu du snippet

Pour ceux qui veulent créer un composant graphique et qui voudraient tester le type d'image Comme par exemple TICON,TMETAFILE et qui utilise les GIF

Source / Exemple :


Var Fpicture : Tpicture;
Begin
// Synthase reconnu par DELPHI
if (FPicture.Graphic is TICON) or (Fpicture.graphic is TMETAFILE) Then
// Synthaxe non reconnu à la compilation
If FPicture.graphic is TGIFIMAGE then

//Pour que cela fonctionne et faut déclarer dans votre prog

Type TGIFIMAGE = Class(TGRAPHIC);

//Le fait de declarer ce type empeche d'avoir le message d'erreur à la compilation
//Undeclared identifier TGIFIMAGE

//Mais le test 
if Fpicture.graphic Is TGIFIMAGE then showmessage('C'est une image GIF');
//ne fonctionne pas donc ce test pour l'intant ne sert à rien

A voir également

Ajouter un commentaire Commentaire
cs_PascalZ
Messages postés
13
Date d'inscription
samedi 8 février 2003
Statut
Membre
Dernière intervention
4 juillet 2012

17 déc. 2003 à 21:15
une autre bonne méthode :

TImageType = (I_Jpeg, I_BMP, I_GIF, I_PNG, I_Unknow);

function GetImageType(FileName: String): TImageType;
var
FS: TFileStream;
Buff: String;
begin
SetLength(Buff, 3);
FS := TFileStream.Create(FileName, fmOpenRead + fmShareDenyNone);
with FS do
begin
Read(Buff[1], 3);
if (Ord(Buff[1]) = $FF) and (Ord(Buff[2]) = $D8) then result := I_Jpeg
else if (Ord(Buff[1]) = $42) and (Ord(Buff[2]) = $4D) then result := I_BMP
else if Buff = 'GIF' then result := I_GIF
else if (Ord(Buff[1]) = $89) and (Ord(Buff[2]) = $50) and (Ord(Buff[3]) = $4E) then
result := I_PNG
else result := I_Unknow;
Free;
end;
end;

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.