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 :

GDI+, DrawImage et unités


Sujet :

Delphi

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Par défaut GDI+, DrawImage et unités
    Bonjour,

    Tout le monde sait que beaucoup de fonctions graphiques sur les pixels ne tracent pas les derniers points. Par exemple une ligne tracé de (0,0) à (0,100) ne sera tracé que de 0 à 99. C'est une convention de Windows, il suffit de le savoir.

    GDI+ permet de travailler en utilisant les pixels, mais aussi des unités physiques comme le pouce.

    Heureusement si on trace en GDI+ un rectangle de 4x2 pouces par exemple, il a bien les dimensions attendues.

    Par contre si on veux afficher un metafile qui a les mêmes dimensions alors il ne fait plus que 3x1 pouces !

    Quelqu'un a déjà constaté ce phénomène ? J'utilise une version buggé de GDI+ ?

    Merci d'avance pour toute aide.

  2. #2
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Un pouce correspond à un certain nombre de pixels selon la résolution que tu utilises pour l'affichage... Il s'agit du fameux ppi (Pixels Per Inch). Normalement, par défault, cette valeur est de 96 pour l'écran, 72 pour l'impression. Avec Delphi, les programmes sont sensibles au ppi de l'utilisateur si la propriété Scaled de la form est à True. Perso, je la mets systhématiquement à False pour ne pas avoir de problème d'affichage; Mes programmes conservent leur aspect quelque soit la résolution des l'utilisateurs. La valeur du ppi est définie par la propriété PixelsPerInch de la form. Pour plus de détails, voir l'aide de Delphi avec touche F1, à+

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Par défaut
    Attention, je parle ici de GDI+ qui permet de choisir l'unité dans laquelle les paramètres des fonctions seront interprétés. Si le problème était lié à la propriété scaled alors la déformation serait homothétique, or dans mon cas 4x2 devient 3x1, 5x3 devient 4x2... Il manque toujours une unité en horizontal et en vertical.

  4. #4
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Je ne vois pas dans ce cas.
    Peut-être est-ce à cause du fait que ces valeurs débutent à 0 et non à 1 ce qui expliquerait pourquoi il manque une unité...

Discussions similaires

  1. OpenGL + GDI
    Par Twofy dans le forum OpenGL
    Réponses: 4
    Dernier message: 26/02/2004, 17h13
  2. Unité Delphi appelée à partir de JAVA
    Par babaahmed dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 26/04/2003, 10h51
  3. [Turbo Pascal] [Windows XP] Problème avec l'unité GRAPH
    Par themofleur dans le forum Turbo Pascal
    Réponses: 22
    Dernier message: 29/03/2003, 22h43
  4. TTreeView -> Comment ouvrir une unité ?
    Par DaLove dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/12/2002, 11h30
  5. Connaitre l'unitée à ajouter dans USES
    Par DelphiCool dans le forum Langage
    Réponses: 7
    Dernier message: 01/08/2002, 13h48

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