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

Composants FMX Delphi Discussion :

Utilisation d'un bitmap pour un composant et dpi


Sujet :

Composants FMX Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 627
    Billets dans le blog
    65
    Par défaut Utilisation d'un bitmap pour un composant et dpi
    Bonjour,

    Dans cette discussion Paul utilise un bitmap qu'il créé au moment du create.
    Cependant dans le cadre d'un composant je me pose la question (devenue à la mode) du dpi. Comment gérer ça? J'avoue mon ignorance.
    Quand je regarde les styles, il y a 3 images png différentes (utilisées selon le dpi) pour récupérer les éléments de dessin via des TStyleObjects

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

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    ah je n'ai pas publié les sources de l'application que j'avais présenté à Aix il y a quelques temps

    le principe du DPI c'est plutôt simple...pendant très longtemps les écrans ont été en 96 dpi et ça ne posait pas de problème car au fur et à mesure qu'on augmentait la résolution, la densité de pixels restait sensiblement la même.

    avec le 4K c'est un autre problème, il faut beaucoup plus de pixels pour remplir une zone écran d'une taille donnée...donc soit le bitmap est zoomé avec un effet de pixellisation et/ou de flou, soit il a une taille ridiculement petite.

    le principe le plus simple c'est de réfléchir en 96dpi et d'appliquer un facteur de zoom en fonction du DPI réel. Donc si je veux faire un trait de 10 pixels (en 96dpi) je fais un trait de (10 * PixelPerInch) div 96Exemple:

    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
    procedure TForm1.PaintBox1Paint(Sender: TObject);
    begin
      with PaintBox1.Canvas do
      begin
        Pen.Color := clRed;
        MoveTo(0, 0);
        LineTo(10, 20);
     
        Pen.Color := clBlue;
        MoveTo(0, 0);
        var x := (10 * PixelsPerInch) div 96;
        var y := (20 * PixelsPerInch) div 96;
        LineTo(x, y);
      end;
    end;
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. Conception des tables utilisées pour le composant entrepot
    Par akhrif dans le forum Odoo (ex-OpenERP)
    Réponses: 0
    Dernier message: 03/06/2013, 12h37
  2. Utiliser la connection d'un projet pour un composant
    Par DeveloMagaly dans le forum WinDev
    Réponses: 4
    Dernier message: 18/04/2008, 09h06
  3. utiliser 2 paint different pour le meme composant ?
    Par freezerhm dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 11/02/2008, 18h34
  4. Utiliser du SVG en backgroundImage pour un composant
    Par Jim_Nastiq dans le forum Flex
    Réponses: 0
    Dernier message: 18/01/2008, 17h18
  5. Comment utiliser une icône personnalisée pour un composant ?
    Par Bruno75 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 22/09/2005, 17h24

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