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 :

Redimensionner une image


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut Redimensionner une image
    Bonjour,

    Je souhaite redimensionner une image JPEG affichée dans un Timage.
    Pour cela je me suis inspiré du code fournit dans ce forum: http://www.developpez.net/forums/sho...age+TBitMap%3B

    Seulement j'ai toujours des problèmes (l'image s'affiche, mais il n'y a pas de redimentionnement )

    Voici ma fonction qui gère le redimentionnement:

    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
    procedure Timage1.LoadImageJPEG(fichier:ansistring;FImage1: Timage);
    Var
      ImageJPEG   : TJPEGImage;
      ImageBmp    : TBitMap;
      Ratio: double;
    begin
    ImageJPEG:=TJPEGImage.Create;
       Try
         ImageJPEG.LoadFromFile(fichier);
      if (ImageJpeg.Empty) then Exit;
         ImageBmp:=TBitMap.Create;
            Try
           ImageBmp.Assign(ImageJPEG);
          Ratio := ImageJpeg.Height / ImageJpeg.Width;
          if Ratio > 1 then
            ImageBmp.Width := Round(image1.Width / Ratio)
          else
              ImageBmp.Width := Fimage1.Width;
              ImageBmp.Height := Round(ImageBmp.Width * Ratio);
           ImageBmp.Canvas.StretchDraw(ImageBmp.Canvas.ClipRect, ImageJpeg);
           FImage1.Picture.BitMap.Assign(ImageBmp);
          finally
           ImageBmp.Free;
         end;
        Finally
         ImageJPEG.Free;
       end;
    end;
    Si quelqu'un peut me dire ce qui ne va pas dans mon code...

    Merci d'avance.

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 79
    Par défaut
    Salut,
    alors je ne sais pas te dire ce qui ne va pas dan ton code ( je l'ai pas lu aussi ) mais à cette adresse : http://delphi.developpez.com/faq/?pa...dimensionimage , tu trouveras normalement ton bonheur.

    A+

  3. #3
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 940
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FImage1.Picture.Assign(ImageBmp); // ??? pê
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  4. #4
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut
    Bonjour

    Effectivement tourlourou, c'est bien la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FImage1.Picture.Assign(ImageBmp);
    qui plante, mais je voit pas où (je débute).

    et merci à toi jfdeterme, avec ce code j'arrive à sauver une image de taille différente en mémoire.
    Mais le problème c'est qu'en faite je voudrais afficher la nouvelle image dans un Timage, sans l'enregistrer sur le disque auparavant(on est un peu limiter en mémoire...)

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 940
    Billets dans le blog
    6
    Par défaut
    en fait, que veux-tu faire précisément ?
    qui sont TImage1 et FImage1 ?
    le TImage ne te suffit-il pas ?

    tu veux simultanément afficher une même photo sous 2 tailles ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  6. #6
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut
    Ok,

    J'ai vu ce qui va pas: Je m'acharnait pas sur la bonne ligne.
    En réalité je voulais assigner un jpeg, au lieu d'un bitmap à mon Timage...
    Y'a des fois ou on ferait mieux d'aller en WE au lieu de bosser..

    Bref, merci à tous our votre aide !!

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

Discussions similaires

  1. [VB.NET] Redimensionner une image dans un PictureBox
    Par Monster77 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 05/04/2007, 18h24
  2. [32 bits] Redimensionner une image JPEG/GIF/PNG...
    Par CR_Gio dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 04/10/2005, 00h57
  3. Redimensionner une image...
    Par RhaZieL dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 22/07/2005, 09h30
  4. [VB.NET] Redimensionner une image proportionnelement
    Par Monster77 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/10/2004, 12h10
  5. [MX2004] redimensionner une image lors du chargement
    Par ouinouin dans le forum Flash
    Réponses: 8
    Dernier message: 18/02/2004, 18h32

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