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

Lazarus Pascal Discussion :

Redimensionner et centrer une image sur un TPanel avec BGRABitmap [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 850
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 850
    Points : 15 264
    Points
    15 264
    Par défaut Redimensionner et centrer une image sur un TPanel avec BGRABitmap
    Bonsoir,

    depuis hier matin je me bats pour essayer de mettre une image dans un canvas, en la redimensionnant et la centrant.

    Alors oui, il y a des tutos, bientôt je vais les connaitre par cœur et les réciter les yeux fermés, ça n'empêchera pas que quand j'essaie de les mettre en œuvre avec juste simplement une toute petite variation, c'est fini c'est fichu y a tout qui part en vrac.
    J'ai même suivi à la lettre et à la virgule près le tuto de notre ami Gilles Vasseur (qu'on voit moins, ces temps-ci, dommage), ça fonctionne bien tant qu'on ne change rien.
    EDIT : j'ai retrouvé le lien : https://gilles-vasseur.developpez.co...sitions/bgra1/ /EDT

    Je ne vais pas tout vous raconter, on y passerait la nuit, juste la dernière mésaventure de cet après-midi où l'on voit à gauche la tentative de dessin de l'image de 3 pingouins sur du sable, d'habitude j'arrive à l'avoir entière mais là, whalou.

    Alors j'ai tenté en pas-à-pas et ça n'a rien donné à part un super-gag, l'exécution d'Application.ProcessMessages efface complètement le canvas...
    Nom : enfer_informatique.png
Affichages : 221
Taille : 203,9 Ko

    Petites explications si quelqu'un voulait tester :
    image c'est un BGRABitmap ;
    pnl4img c'est un TPanel support du canvas d'affichage, que je ne veux pas faire sur la fiche car il sera appelé à être redimensionné ;
    j'ai mis des .Update qui ne servent à rien ;
    et il y a un .Free de l'image, pas visible là.

    Voilà, je ne sais plus quoi dire d'autre, je ne sais plus quoi faire, je suis exténué et au bout du rouleau, normal quand on vit des trucs genre StatusBar1.Visible := False; suivi de F9 et le contrôle est toujours là, à me narguer.

    Les curieux regarderont peut-être ça, s'ils ont du temps à perdre https://wiki.freepascal.org/BGRABitmap_tutorial_2, feront comme moi et joueront avec les exemples et bon courage pour essayer de mettre le dessin ailleurs ou le redimensionner puis le déplacer.

    Enfin, toutes ces misères peut-être parce que je suis sous Linux...

    Et voilà l'image utilisée comme source :
    Nom : pingouins.png
Affichages : 208
Taille : 362,3 Ko
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  2. #2
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 429
    Points : 4 537
    Points
    4 537
    Par défaut
    Bonjour,

    Il est où le free de l'image ? S'il y a un doute, le mettre en commentaire pour tester.

    C'est amusant de mettre un Update dans le OnPaint qui va générer un message qui provoquera un événement OnPaint qui...

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  3. #3
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 850
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 850
    Points : 15 264
    Points
    15 264
    Par défaut
    Citation Envoyé par Guesset Voir le message
    Il est où le free de l'image ? S'il y a un doute, le mettre en commentaire pour tester.
    Plus bas, pas visible ici pour ne pas brouiller la vision que je voulais concentrée sur les 7 lignes.

    Citation Envoyé par Guesset Voir le message
    C'est amusant de mettre un Update dans le OnPaint qui va générer un message qui provoquera un événement OnPaint qui...
    Tu as raison, mais il y a des moments où on ne sait plus quoi faire...
    Àmha, cet update j'ai dû le rajouter après m'être rendu compte que j'avais une image foireuse, en utilisant les instructions du tuto.

    Maintenant, je vais t'en raconter une autre qui vaut son pesant de cacahuètes ou plutôt, voilà le lien, j'ai posté chez FreePascal, on en reparlera, là il faut que je me repose, je suis vanné.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #4
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 429
    Points : 4 537
    Points
    4 537
    Par défaut
    Bonjour Jipété,

    Pour ton lien : it's not a bug, it's a feature ! Je croyais qu'il n'y avait que les sociétés commerciales qui l'utilisaient.

    Salut
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  5. #5
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 507
    Points
    15 507
    Billets dans le blog
    9
    Par défaut
    Bonsoir Jipété !

    Pas sûr d'avoir bien compris ce que tu veux faire.

    Voici un exemple qui te permettra peut-être d'avancer. L'image est dessinée dans un panel. Elle est redimensionnée en fonction de la taille de celui-ci.

    [EDIT]
    Remplacé la pièce jointe, pour ajouter la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.Panel1Paint(Sender: TObject);
    var
      image2: TBGRABitmap;
    begin
     
      image2.Free; // <---
    end;
    [/EDIT]
    Fichiers attachés Fichiers attachés
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  6. #6
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 850
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 850
    Points : 15 264
    Points
    15 264
    Par défaut
    Bonsoir Roland,
    Citation Envoyé par Roland Chastain Voir le message
    Pas sûr d'avoir bien compris ce que tu veux faire.
    Des précisions :
    Merci pour ton zip mais ce n'est pas ce que je cherche, car si le redimensionnement fonctionne bien, àmha il manque la conservation des proportions, un truc pour moi mandatory.

    En plus je me suis bagarré une bonne moitié de la journée avec cette histoire d'infobulle, qui in fine me fait penser à une grosse boulette de design : le système considère une seule chaine de caractères, donc 1 seule ligne, alors ma liste de 11 lignes, je peux l'oublier, mais comment comparer des éléments d'une liste si on les voit un à la fois ?
    Et pourtant, une liste de 8 lignes fonctionne...

    Je viens d'avoir un nouveau post du team Lazarus, je vais aller voir ce qu'on me raconte.
    EDIT : une stupidité... /EDIT
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  7. #7
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 507
    Points
    15 507
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Merci pour ton zip mais ce n'est pas ce que je cherche, car si le redimensionnement fonctionne bien, àmha il manque la conservation des proportions, un truc pour moi mandatory.
    Ah mais je n'avais pas prétendu écrire entièrement le programme à ta place.

    Cela dit, voici une version améliorée de l'exemple, où les proportions de l'image sont conservées.
    Fichiers attachés Fichiers attachés
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  8. #8
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 850
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 850
    Points : 15 264
    Points
    15 264
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Ah mais je n'avais pas prétendu écrire entièrement le programme à ta place.
    Ne t'inquiète pas, je m'en suis bien sorti tout seul,
    Et j'en ai même profité pour rajouter un RadioGroup me permettant de choisir entre une image horizontale, une carrée ou une verticale, avec du stretching, et tout ça va bien.

    Non, le seul problème que je rencontre, c'est quand je veux utiliser mon statusbar tweaké, avec les panels colorés.
    Figurez-vous qu'une instruction toute simple d'écriture (en l'espèce, une remise à blanc, à "vide") d'un texte dans un panel ne fonctionne pas ! Un truc genre stb.Panels[0].Text := ''; est sans action, le texte précédent reste en place !
    Il me faut faire la chose en deux temps : SomeText0 := ''; stb.Panels[0].Text := SomeText0; et comme ça c'est bon !
    Faudra qu'on m'explique, là.

    Citation Envoyé par Roland Chastain Voir le message
    Cela dit, voici une version améliorée de l'exemple, où les proportions de l'image sont conservées.
    Merci pour ton code, qui fonctionne bien et m'incite cependant à poser la question qui tue : pourquoi des Trunc ? Pourquoi pas des Round ?
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  9. #9
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 507
    Points
    15 507
    Billets dans le blog
    9
    Par défaut
    Il me semble que si on utilise Round l'image risque d'être trop grande.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  10. #10
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 850
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 850
    Points : 15 264
    Points
    15 264
    Par défaut
    Bonjour,

    Citation Envoyé par Roland Chastain Voir le message
    Il me semble que si on utilise Round l'image risque d'être trop grande.
    Ta remarque m'ayant intrigué, je me suis amusé à faire le test suivant, et les commentaires en bout de ligne indiquent les valeurs h et w utilisées et les résultats des calculs :
    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
      ratio2 := Panel1.ClientHeight / Panel1.ClientWidth;
      if ratio2 > ratio then
      // try3 h259, w320->240 r=1,07916 - try4 w240->241 r=1,07468
      begin
        w := Panel1.ClientWidth;
        ht := Trunc(w * ratio);
        hr := Round(w * ratio);
        xt := (Panel1.ClientWidth  - w) div 2;
        xr := (Panel1.ClientWidth  - w) div 2;
        Caption := IntToStr(ht)+' '+IntToStr(hr); // try3 190 190 - try4 191 191
      end else
      // try1 h224->h244 w320 r=0,7625 - try2 h244->h259 r=0,809375
      begin
        h := Panel1.ClientHeight;
        wt := Trunc(h / ratio);
        wr := Round(h / ratio);
        yt := (Panel1.ClientHeight - h) div 2;
        yr := (Panel1.ClientHeight - h) div 2;
        Caption := IntToStr(wt)+' '+IntToStr(wr); // try1 268 268 - try2 285 286
      end;
    Conclusion : sur 4 tests, j'ai eu 1 fois un décalage de 1 point, celui qu'on voit juste au-dessus, là, 285 <> 286.

    Est-ce que c'est grave ? Si le container de l'image est à 285 on perd une colonne d'image avec Round, si le container est à 286 on aura une colonne noire avec Trunc.

    J'avoue que je ne sais pas trop comment choisir,
    Peut-être en se disant que si on perd une colonne de pixels, on ne le sait pas, par contre, l'apparition d'une colonne noire ça doit se voir.
    Je n'ai pas mis en place la possibilité de comparer visuellement les différentes images générées, désolé.

    Faudrait faire d'autres tests, pas l'temps...

    Bon dimanche,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  11. #11
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 429
    Points : 4 537
    Points
    4 537
    Par défaut
    Bonjour,

    J'aurais tendance à prendre le problème dans l'autre sens. Si ratio est un facteur de zoom, je calcule d'abord et j'ajuste si nécessaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
       wr := Round(w * ratio);
       if wr >= Panel1.ClientWidth then begin
          wr := Panel1.ClientWidth;
          ratio := Panel1.ClientWidth / w;
       end;
       hr := Round(h * ratio);
       if hr >= Panel1.ClientHeight then begin
          hr := Panel1.ClientHeight;
          ratio := Panel1.ClientHeight / h;
          wr := Round(w * ratio);
       end;
    Si on veut remplir au mieux le panel, il n'est pas nécessaire de calculer le ratio h/w.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       if w * Panel1.ClientHeight > h * Panel1.ClientWidth then begin
          wr := Panel1.ClientWidth;
          hr := (h * Panel1.ClientWidth) div w;
       end
       else begin
          hr := Panel1.ClientHeight;
          wr := (w * Panel1.ClientHeight) div h;
       end;
    Il est facile de vérifier qui si les ratios sont égaux la division entière ne provoquera aucune troncature et que l'image remplira exactement le panel.

    On peut gagner en efficacité avec 2 variables temporaires qui stockent hW := h * Panel1.ClientWidth et wH := w * Panel1.ClientHeight.

    Si je peux tout faire en entiers, je fais tout en entiers

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  12. #12
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 850
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 850
    Points : 15 264
    Points
    15 264
    Par défaut
    Citation Envoyé par Guesset Voir le message
    J'aurai tendance à prendre le problème dans l'autre sens. Si ratio est un facteur de zoom, je calcule d'abord et j'ajuste si nécessaire
    Yep !

    Je veux bien faire des essais mais tu ne nous dis pas tout !
    Tu commences bille en tête par wr := Round(w * ratio); mais c'est quoi la valeur de w ?

    Dans le code posté ce midi, je commençais par w := Panel1.ClientWidth; mais on dirait que tu ignores cette assignation puisque tu ne la re-présentes pas.
    Et pareil pour le h...

    Merci d'être un poil plus clair parce que là, en fin de journée, c'est dur !

    J'ai rajouté ces deux assignations w et h, ça donne 190 258 pour hr et wr, et si je les commente, 110 88.
    Avec ça on est bien avancés, parce que mine de rien, il était question d'agrandir le panneau et les 4 valeurs ci-dessus n'en prennent pas le chemin,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  13. #13
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 429
    Points : 4 537
    Points
    4 537
    Par défaut
    Bonjour,

    h et w sont les dimensions initiales de l'image. Je croyais, à tort, que cela allait de soit quand j'ai vu l'usage de hr pour une hauteur cible semble-t-il. Je dois avouer ne pas avoir regarder l'entièreté du projet mais les redimensionnements peuvent souvent se faire sans maints calculs flottants.

    J'ai réagi plus que réfléchi

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  14. #14
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 850
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 850
    Points : 15 264
    Points
    15 264
    Par défaut
    Ah, je pensais que c'était lumineux : puisqu'on parlait de comparer des calculs arrondis avec Trunc et d'autres avec Round, pour moi il était évident que Ht signifiait "hauteur calculée avec Trunc" et Hr "hauteur calculée avec Round", et pareil pour Wt et Wr concernant la largeur.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  15. #15
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 085
    Points : 15 507
    Points
    15 507
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Guesset Voir le message
    Si on veut remplir au mieux le panel, il n'est pas nécessaire de calculer le ratio h/w.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       if w * Panel1.ClientHeight > h * Panel1.ClientWidth then begin
          wr := Panel1.ClientWidth;
          hr := (h * Panel1.ClientWidth) div w;
       end
       else begin
          hr := Panel1.ClientHeight;
          wr := (w * Panel1.ClientHeight) div h;
       end;
    Ah oui c'est habile.
    Fichiers attachés Fichiers attachés
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  16. #16
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 850
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 850
    Points : 15 264
    Points
    15 264
    Par défaut
    Bonjour,

    Félicitations à vous deux, c'est un plaisir d'attraper le grip en bas à droite de la fiche et de le déplacer dans tous les sens, avec l'image et ses dimensions qui suivent sans broncher !

    Solved !
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  17. #17
    Membre confirmé

    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 176
    Points : 476
    Points
    476
    Par défaut
    Bonjour,

    Citation Envoyé par Roland Chastain Voir le message
    Il me semble que si on utilise Round l'image risque d'être trop grande.
    Pour être plus précis, round, comme son nom l'indique est un arrondi. Il est plus grand que la valeur réelle si la valeur décimale est supérieure à 0,5, et plus petit si la valeur décimale est est inférieure ; trunc se contente de supprimer la décimale, donc il est toujours plus petit que la valeur réelle, sauf si cette dernière est déjà un entier.

    Mais je suppose que c'était sous-entendu dans ta réponse.


    bb

  18. #18
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 429
    Points : 4 537
    Points
    4 537
    Par défaut
    Bonjour bb84000,

    Citation Envoyé par bb84000 Voir le message
    ...Pour être plus précis, round, comme son nom l'indique est un arrondi. Il est plus grand que la valeur réelle si la valeur décimale est supérieure à 0,5, et plus petit si la valeur décimale est est inférieure ; trunc se contente de supprimer la décimale, donc il est toujours plus petit que la valeur réelle, sauf si cette dernière est déjà un entier...
    Petites précisions en complément :
    • Attention aux valeurs négatives : Round(-10.7) = -11 < -10.7 et Trunc(-10.7) = -10 > -10.7 (arrondi vers 0)
    • Round pour exactement x.5 retourne le nombre pair le plus proche. C'est pour éviter un décalage de la valeur moyenne sur de grands ensembles.

    Salut
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  19. #19
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 429
    Points : 4 537
    Points
    4 537
    Par défaut
    Bonjour Jipété,

    Citation Envoyé par Jipété Voir le message
    ...puisqu'on parlait de comparer des calculs arrondis avec Trunc et d'autres avec Round, pour moi il était évident que Ht signifiait "hauteur calculée avec Trunc" et Hr "hauteur calculée avec Round"...
    J'avais bien compris cela : ht et hr étant des valeurs cible, d'où l'inférence de h et w (ou ho, wo ) pour les valeurs originelles. Le r de hr et wr du code proposé n'a pas le même sens : r pour résultat.

    Salut
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  20. #20
    Membre confirmé

    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 176
    Points : 476
    Points
    476
    Par défaut
    Bonjour,

    Citation Envoyé par Guesset Voir le message
    [*]Attention aux valeurs négatives
    Bon sang, mais c'est bien sur ! Je les avais oubliées celles là.
    bb

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. LEVAN : le système informatique en mesure d’apprendre tout sur n’importe quoi
    Par Arsene Newman dans le forum Intelligence artificielle
    Réponses: 10
    Dernier message: 03/06/2014, 12h20
  2. Ajouter 'TER222' devant un nombre dans toute une colonne
    Par TheTcha dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 08/01/2013, 12h50
  3. [CodeLite] Compile tout et n'importe quoi !
    Par hornon dans le forum Autres EDI
    Réponses: 0
    Dernier message: 10/06/2009, 23h02

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