Salut!
Je veux savoir comment connaître par code le type d'une image quelconque dans TImage c'est à dire c'est une image de type Bitmap ou Jpeg ou autre.
Merci d'avance!
Salut!
Je veux savoir comment connaître par code le type d'une image quelconque dans TImage c'est à dire c'est une image de type Bitmap ou Jpeg ou autre.
Merci d'avance!
Salut
Si tu ouvres un fichier bmp ou jpeg, tu verras qu'ils commencent tous de la mêm façon:
- BM6 pour un Bitmap
- ÿØÿ pour un jpeg ()
Sinon, tu peux aussi essayer de charger avec un TBitmap en interceptant l'erreur d'ouverture si ce n'est pas un bitmap
Pour plus de renseignements, fais une recherche sur google pour des sites expliquant les structures de ces fichiers Tu verras que chaque type de fichier à les mêmes caractères à son début
Pedro
Aucune réponse aux sollicitations techniques par MP
Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)
Les pages Source C'est bon. Mangez-en!
Le défi Delphi
Règles du forum - FAQ Delphi - Pensez au chtit
Aéroclub Bastia Saint-Exupéry
Salut Pedro204
Merci pour votre réponse
S'il vous plait explique moi comment charger avec un TBitmap en interceptant l'erreur d'ouverture si ce n'est pas un bitmap.
Merci d'avance
Salut,
Si tu veux déterminer quel type d'image se trouve déjà dans un TPicture donné, il suffit d'aller voir de quel type est le Picture.Graphic
Mais puisque tu sembles plutôt vouloir déterminer le type d'une image uniquement en fonction de son contenu, tu peux effectivement le faire toi même comme l'a suggéré Pedro204, si cela se limite à l'alternative exclusive BMP/JPG (avec la détection d'entête ou le try..except pourquoi pas).
Mais voici au besoin une solution déjà codée qui fonctionnerait même pour la détection d'autres types d'images :
Utiliser l'unité GraphicEx (qui permet de lire de nombreux formats), et notamment la fonction :
C'était juste pour info. Choisis tes armes en fonction de tes besoins (présents et futurs ).
Code : Sélectionner tout - Visualiser dans une fenêtre à part function TFileFormatList.GraphicFromContent(Stream: TStream): TGraphicExGraphicClass;
« La simplicité est la sophistication suprême » (Léonard de Vinci)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager