Afficher une image jpeg dans un timage

Soyez le premier à donner votre avis sur cette source.

Vue 22 445 fois - Téléchargée 1 622 fois

Description

Si le composant TImage reconnait sans problèmes un bitmap, une icone ou un métafichier graphique, il peut aussi accepter de charger une image jpeg.
Le code proposé se contente de montrer comment charger une image jpeg et ne se préoccupe absolument pas des problèmes de redimensionnement. Cela fera partie d'un autre source si cela intéresse quelqu'un.

Source / Exemple :


procedure TImagesMainForm.btnLoadImageClick(Sender: TObject);
var
  ImgExt : string;
  Jpeg: TJpegImage;
begin
  if OpenPicture.Execute then
  begin
    //le traitement se fera d'après l'extension du fichier
    ImgExt := LowerCase(ExtractFileExt(OpenPicture.FileName));

    //Bitmap
    if ImgExt = '.bmp' then
      Image1.Picture.Bitmap.LoadFromFile(OpenPicture.FileName);

    //Jpeg
    if (ImgExt = '.jpg') or (ImgExt = '.jpeg') then
    begin
      Jpeg := TJpegImage.Create;
      try
        Jpeg.LoadFromFile(OpenPicture.FileName);
        //copie de l'image du jpeg dans un bitmap
        Image1.Picture.Bitmap.Assign(Jpeg);
      finally
        Jpeg.Free;
      end;

    end; {if (ImgExt = '.JPG') or (ImgExt = '.JPEG')}

    //icones
    if ImgExt = '.ico' then
      Image1.Picture.Icon.LoadFromFile(OpenPicture.FileName);

    //wmf et emf
    if Pos(ImgExt, GraphicFileMask(TMetaFile)) <> 0 then
      Image1.Picture.Metafile.LoadFromFile(OpenPicture.FileName);

    //afficher le nom du fichier dans un espace restreint
    lblImageFileName.Caption := MinimizeName(OpenPicture.FileName,
                                             lblImageFileName.Canvas,
                                             lblImageFileName.Width);
  end; {if OpenPicture.Execute}
end;

Conclusion :


Rien de sorcier là dedans.
Attention : pour insérer des images dans une base de données, ce n'est pas cette technique qu'il faut employer.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

alpha386
Messages postés
16
Date d'inscription
jeudi 23 octobre 2003
Statut
Membre
Dernière intervention
15 novembre 2006
-
Salut

Ce serais plaisant de pouvoir la redimensionner directement. Alors moi je suis intéressé à pouvoir le faire

Merci
cs_Delphiprog
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
24 -
Il suffisait de demander. 8-)
Voir les deux codes source qui suivent.
olokaust
Messages postés
2
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
5 mars 2004
-
très chouette ca faisait un moment que je cherchait après mais je vois que tu met que pour inserer dans un db ce n'est pas ce code, connaitrais tu le code pour inserer dans une db?car j'ai essayer avec une db sql server et il met quelque chose de bizarre dedans et quand je le récupère c'est vide. il prend bien la place d'une image mais blanche.
slachz
Messages postés
110
Date d'inscription
lundi 21 avril 2003
Statut
Membre
Dernière intervention
1 janvier 2006
-
ça revient à utiliser l'unit jpeg non ? (c'est juste une question)
cs_grandvizir
Messages postés
1237
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
10 -
Non car le Jpeg ne se redimensionne pas. Enfin, en tout cas, pour les TIcon, ça marche comme ça. Il faut donc passer par un TBitmap...

Sinon, GraphEx (Developpez.com) propose des centaines de formats graphiques. Et l'enjeu est : comment uniformiser sans peine autant de classes ?

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.