IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Comment trouver le poids en octets d'une image


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2006
    Messages : 32
    Points : 26
    Points
    26
    Par défaut Comment trouver le poids en octets d'une image
    Bonjour à tous,

    J'aimerais avoir le poids en octets d'une image chargée dynamiquement dans un TImage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ListeFichiers: TFileListBox;
    ImgImage: TImage;
    hauteur, largeur, poids: Integer;
     
    //ListeFichier contient les images du Dossier
    ListeFichiers.Directory := Dossier;
    ListeFichiers.update;
    for i := 0 to ListeFichiers.Count-1 do begin
         //On charge l'image dans le TImage
         ImgImage.Picture.LoadFromFile(ListeFichiers.items[k]);
         hauteur:= ImgImage.Height;
         largeur:= ImgImage.Width;
         //poids := ?????
    end;
    Les images sont des jpeg et je n'ai pas trouvé la propriété poids dans le TImage.

    Merci d'avance pour vos réponses.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 264
    Points : 41 665
    Points
    41 665
    Billets dans le blog
    64
    Par défaut
    Bonjour,

    si par poids vous entendez la taille du fichier , la dernière fois que j'ai fait un truc de ce genre c'était en XE4 pour lister des fichiers images et grâce à la structure de recherche (findfirst puis findNext)

    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    Const SizeK = 1024;
          SizeM = 1024*1024;
    ....
    procedure TBrowseThread.Browse;
    var Info   : TSearchRec;  // structure de recherche
        Item: TListBoxItem;   // item de la liste
        Image : TImage;
     ...
    begin
      Image:=TImage.Create(nil);
      try 
    ...
      If FindFirst(FRepertoire+'*.jpg',faAnyFile,Info)=0 Then   // première image du répertoire
      begin
        repeat
           if (Info.Attr And faDirectory)=0
            then
              begin
                Item := TListBoxItem.Create(FResult);        // Création de l'item
                Item.Parent := FResult;                 // affectation à la liste
                Item.TagString := FRepertoire+Info.Name;      // Stockage nom complet
                Item.StyleLookup := 'ListeItem';         // Style de l'item
                Item.Text := info.name;                  // nom du fichier
                Item.Height:=60;                         // Hauteur de l'item (pour ne pas prendre la hauteur par défaut)
              try
                // remplissage de l'image (utilisation de vignette)
                Item.ItemData.Bitmap.LoadThumbnailFromFile(Item.TagString,Item.Height,Item.Height);
                Image.Bitmap.LoadFromFile(Item.TagString);
                Item.StylesData['Dim.Text']:=Format('Dimensions %d x %d',[Image.Bitmap.Width,Image.Bitmap.Height]);
              except
              end;
              // Taille de l'image si >1Mo
              if info.Size>SizeM
               // en Méga Octets
               then Item.StylesData['Size.Text']:=Format('%3.3f Mo',[info.Size/sizem])
               // sinon en Kilo Octets
               else Item.StylesData['Size.Text']:=Format('%3.3f Ko',[info.Size/sizek]);
            ...
           end;
         until FindNext(Info)<>0;  // recherche
        FindClose(Info);           // fin de recherche
      end;
      finally
        FreeAndNil(Image);        // Image.Free;
      end;
    end;
    j'ai mis le source ici qui fait partie de ce tutoriel

    comme vous n'indiquez pas votre version de Delphi ....

  3. #3
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Bonjour,

    Il aurait été également possible d'utiliser la fonction d'ici : http://delphi.developpez.com/faq/?pa...e-d-un-fichier
    qui renvoie la taille d'un fichier quelconque avec une valeur de type int64, et ceci à mon avis quelle que soit la version de Delphi.

    A+.

  4. #4
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2006
    Messages : 32
    Points : 26
    Points
    26
    Par défaut
    Désolée, je suis en XE3.
    Cette méthode fonctionne très bien, c'est exactement ce que je cherchais.
    Merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 26/06/2015, 17h48
  2. Comment trouver les points des inflections pour une courbe
    Par mihaispr dans le forum Mathématiques
    Réponses: 3
    Dernier message: 30/09/2009, 15h25
  3. [MySQL] comment trouver le nombre d'éléments dans une sgbd
    Par Bathou dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/06/2008, 18h29
  4. [Image] Récupérer les octets d'une image
    Par Pill_S dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 02/02/2006, 23h09
  5. comment afficher cursor: hand sous FF pour une image?
    Par Death83 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/09/2005, 09h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo