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 un GroupBox et un TImage en Centimètre


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 9
    Points : 10
    Points
    10
    Par défaut Redimensionner un GroupBox et un TImage en Centimètre
    Salut Cher amis Développeur
    Je suis en train de developper une application de traitrement de Photo
    j'ai un groupBox sur ma Fiche que j'aimerais redimensionner en centimètre ou lui donner la forme d'une page A4
    je veux également rédimenssionner mes TImages qui vont contenir mes photos aussi en Centimètre
    mais je ne sais pas comment procéder et toutes mes recherches ne m'ont rien donné
    svp quelqu'un pourrais t'il m'apporter une aide Merci d'avance !!!

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 421
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 421
    Points : 1 325
    Points
    1 325
    Par défaut
    Bonjour à toutes et à tous,

    @ LABETISIA, le plus simple, tu poses sur ta fiche un Tpanel et sur ce composant, tu poses soit un TGroupBox ou TImage avec la propriété "Align" en "alClient" qui se trouve dans les propriétés de "l'inspecteur d'objets".

    Ensuite, tu sais régler les dimensions de ton TPanel comme tu veux.

    Exemple si tu veux que tout soit dans la fiche, tu règles aussi la propriété de ton TPanel en "alClient".

    @+,

    Cincap

  3. #3
    Membre confirmé Avatar de JustMe
    Inscrit en
    Juillet 2002
    Messages
    479
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 479
    Points : 593
    Points
    593
    Par défaut
    En Centimètre ça doit être : PixelsPerInch / 2.54
    <On fait la science avec des faits, comme on fait une maison avec des pierres : mais une accumulation de faits n'est pas plus une science qu'un tas de pierres n'est une maison> **Poincaré**

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 421
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 421
    Points : 1 325
    Points
    1 325
    Par défaut
    @ LABETISIA, pour ce qui concerne le resize photo, j'utilise ce code qui peut être certainement encore simplifié par nos experts.

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
     
    procedure JPEGToBMP(JPG : TJPegImage; BMP : TBitmap);
    begin
      BMP.Width := JPG.Width;
      BMP.Height:= JPG.Height;
      BMP.PixelFormat := pf24bit;
      BMP.Canvas.Draw(0,0,JPG);
    end;
     
    procedure PNGToBMP(PNG : TPNGobject; BMP : TBitmap);
    begin
      BMP.Width := PNG.Width;
      BMP.Height:= PNG.Height;
      BMP.PixelFormat := pf24bit;
      BMP.Canvas.Draw(0,0,PNG);
    end;
     
    procedure WMFToBMP(WMF : TMetafile; BMP : TBitmap);
    begin
      BMP.Width := WMF.Width;
      BMP.Height:= WMF.Height;
      BMP.PixelFormat := pf24bit;
      BMP.Canvas.Draw(0,0,WMF);
    end;
     
     
    procedure TFormtest2.BOuvrir1Click(Sender: TObject);
    var
        JPG : TJPegImage;
        BMP : TBitmap;
     
        PNG : TPNGObject ;
        GIF: TGifImage ;
        WMF : TMetafile ;
     
        Ext : string;
        BMPLoaded : boolean;
        NewH, NewW, OldSBM : integer;
    begin 
     
    { initialisation }
      BMPLoaded := false;
     
      { ouverture d'une image }
      if not Bdimage.Execute then exit else
      begin
        { recuperation de l'extention }
        Ext := LowerCase(ExtractFileExt(Bdimage.FileName));
     
         { creation du bitmap temporaire }
        BMP := TBitmap.Create;
     
        try
          { si c'est un jpeg }
          if (ext = '.jpg') or (ext ='.jpeg') then
          begin
            { creation d'une image jpeg }
            JPG := TJPegImage.Create;
            try
              { charge a partir du fichier }
              JPG.LoadFromFile(Bdimage.FileName);
              { convertion JPG > BMP }
              JPEGToBMP(JPG,BMP);
              { BMP est prét }
              BMPLoaded := true;
            finally
              { liberation de JPG }
              JPG.Free;
            end;
     
          end
          else
     
          if ext = '.png' then
          begin
            Png := TPNGObject.Create;
          try
            { charge a partir du fichier }
            png.LoadFromFile(Bdimage.FileName);
            pngToBMP(png,BMP);
            { BMP est prét }
            bmpLoaded := true;
     
          finally
              { liberation de PNG }
              PNG.Free;
            end;
     
             end
          else
     
           if ext = '.gif' then
          begin
            Gif := TGifimage.Create;
          try
            { charge a partir du fichier }
            Gif.LoadFromFile(Bdimage.FileName);
     
            bmp.Assign(gif);
            { BMP est prét }
            bmpLoaded := true;
     
          finally
              { liberation de GIF }
              Gif.Free;
            end;
     
             end
          else
     
            if ext = '.wmf' then
          begin
            Wmf := TMetafile.Create;
          try
            { charge a partir du fichier }
            wmf.LoadFromFile(Bdimage.FileName);
            WMFToBMP(WMF,BMP);
     
            { BMP est prét }
            bmpLoaded := true;
     
          finally
              { liberation de WMF }
              wmf.Free;
            end;
     
             end
          else
     
          { si c'est un bitmap }
          if ext = '.bmp' then
          begin
            { charge a partir du fichier }
            BMP.LoadFromFile(Bdimage.FileName);
            { BMP est prét }
            BMPLoaded := true;
          end;
     
     
          { si BMP est prét }
          if BMPLoaded then
          begin
     
                    NewW := 240; //Ou avec TSpinEdit
                    NewH := 400;  //Ou avec TSpinEdit
     
            end;
     
            { enfin on vas injecter BMP dans le bitmap de Image2 (autosize = true) }
            with Imagesource1.Picture.Bitmap do
            begin
              { on definit les nouvelles dimensions }
              width       := NewW;
              height      := NewH;
              { on travail en couleurs 24bpc }
              pixelformat := pf24bit;
     
              { on sauvegarde l'ancien mode de redimension du canvas }
              OldSBM := GetStretchBltMode(Canvas.Handle);
     
              { et on le definit en mode HALFTONE }
              SetStretchBltMode(Canvas.Handle, HALFTONE);
     
              { on dessine l'image }
              StretchBlt( Canvas.Handle, 0, 0, NewW, NewH,
                          BMP.Canvas.Handle, 0, 0, BMP.Width, BMP.Height,
                          SRCCOPY);
     
              { on restaure le mode de redimensionnement du canvas }
              SetStretchBltMode(Canvas.Handle, OldSBM);
     
              BMP.Assign(imagesource1.picture.bitmap);
           Bimagesource1AClick(Sender);
          end;
        finally
          { on libere BMP }
          BMP.Free;
        end;
    Les valeurs NewW et NewH peuvent être dans un TSpinEdit !

    @+,

    Cincap

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Bonjours @Cincap
    Merci cher ami pour toutes vos réponses
    Dans ma petite application je veux par exemple donner une taille de
    Hauteur 4 Cm et de Largeur 3 Cm et ensuite les dupliquer en peut etre 4 Copies sur la Meme page
    Tu peu me guider un peu
    Quant a la création du fichier BMP je pige bien Merci

  6. #6
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    le problème c'est qu'en informatique les centimètres ça ne veux rien dire.

    un A4 c'est 21 x 29,7, ça on le sait, mais quelle est la qualité d'impression de l'imprimante qui sera utilisée ? plus son DPI (dot per inch) est élevé, plus l'image bitmap doit être grande pour occuper toute la page...sauf évidemment à étirer l'image lors de l'impression pour qu'elle remplisse la page quelque soit sa résolution.

    or donc, une dimension en pixels est figée, mais une dimension en centimètres va obligatoirement être associée à un dpi...afin d'obtenir une quantité de pixels.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Alors dans ce cas comment je procède pour parvenir
    Puisque Mon but est de pouvoir imprimer sur une feuille A4
    plusieurs Copies d'une même photo ou de plusieurs photos
    de taille (Hauteur 4 Cm et Largeur 3Cm)
    Est ce la taille du TImage qu'il faut plutôt fixer ??????
    ******************************************************
    Merci pour le temps que vous accorder à ma préoccupation

  8. #8
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    Citation Envoyé par LABETISIA Voir le message
    Alors dans ce cas comment je procède pour parvenir
    Puisque Mon but est de pouvoir imprimer sur une feuille A4
    plusieurs Copies d'une même photo ou de plusieurs photos
    de taille (Hauteur 4 Cm et Largeur 3Cm)
    Est ce la taille du TImage qu'il faut plutôt fixer ??????
    ******************************************************
    Merci pour le temps que vous accorder à ma préoccupation
    tout est expliqué là:
    http://alphomega.developpez.com/coordprintermm/

    avec ce code tu peux déterminer la taille optimale de ton image pour ton imprimante...et de toute façon connaître les dimensions à utiliser lors de son impression.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

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

Discussions similaires

  1. Redimensionner image TImage
    Par jojo86 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 13/09/2008, 11h33
  2. Redimensionner un TImage
    Par Andry dans le forum Composants VCL
    Réponses: 2
    Dernier message: 11/08/2007, 11h01
  3. TImage pb dessin après redimensionnement
    Par b.grellee dans le forum Delphi
    Réponses: 6
    Dernier message: 03/10/2006, 00h33
  4. Redimensionnement d'un TImage
    Par ero-sennin dans le forum Delphi
    Réponses: 4
    Dernier message: 03/08/2006, 22h52
  5. Redimensionner le canvas d'un timage
    Par Bernard Martineau dans le forum Delphi
    Réponses: 4
    Dernier message: 15/05/2006, 16h49

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