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

Windows Discussion :

Ecrire du texte sous forme de pixels dans un buffer


Sujet :

Windows

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 21
    Points : 9
    Points
    9
    Par défaut Ecrire du texte sous forme de pixels dans un buffer
    Bonjour,

    je souhaite ecrire du texte pixelisé dans un buffer. Le buffer contiendra le texte tel qu'il doit etre affiché, c'est a dire avec la bonne fonte, police etc..

    Y'a t-il une fonction qui permet de faire cela avec Windows Mobile 6?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Si BitBlt() et CreateDIBSection() sont disponibles, je pense que oui.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    En fait ces fonctions dessinent directement, je voudrais stocker le tout dans un buffer sans prendre DC en argument.

    Par exemple, une fonction a laquelle je passe en argument : texte + fonte + police et en sortie un buffer. Je ne souhaite pas dessiner.

    Merci pour ta reponse

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Jae,

    En clair, tu veux un dessin sans dessiner ?
    Si les cons volaient, il ferait nuit à midi.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Points : 179
    Points
    179
    Par défaut
    Bonjour,

    Regarde du côté de GetGlyphOutline.

    Puis de "How To Draw TrueType Glyph Outlines".

    Cordialement

  6. #6
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    non non je ne suis pas fou!

    En fait, je veux un buffer qui contienne le texte dessiné afin de pouvoir le manipuler ensuite et faire par exemple des overlays.

    la fonction LoadBitmap fait cela pour une bitmap il me semble.

  7. #7
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par kikekoikan Voir le message
    non non je ne suis pas fou!

    En fait, je veux un buffer qui contienne le texte dessiné afin de pouvoir le manipuler ensuite et faire par exemple des overlays.

    la fonction LoadBitmap fait cela pour une bitmap il me semble.
    En win32 ce n'est possible seulement avec les API données par Medinoc.
    Il faut utiliser CreateDIBSection avec des informations concernant la bitmap

    Citation Envoyé par kikekoikan Voir le message
    Par exemple, une fonction a laquelle je passe en argument : texte + fonte + police et en sortie un buffer. Je ne souhaite pas dessiner.
    Je n'arrive vraiment pas à comprendre ce que tu veux faire..si tu veux mémoriser ces infos il suffit de créer une structure ou classe tout simplement.
    Pour le texte il suffit de le mettre dans une chaine de caractère franchement je ne vois pas ou tu veux en venir.
    Sinon il y a la solution des Metafiles ( fichiers .emf).
    Regarde du coté des "paths" avec BeginPath,StrokePath et EndPath

  8. #8
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Jei,
    Citation Envoyé par kikekoikan Voir le message
    non non je ne suis pas fou!

    En fait, je veux un buffer qui contienne le texte dessiné afin de pouvoir le manipuler ensuite et faire par exemple des overlays.

    la fonction LoadBitmap fait cela pour une bitmap il me semble.
    Oui, mais un bitmap est une image ! Et comme tu te refuses à en faire une...
    Si les cons volaient, il ferait nuit à midi.

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Seule une DIB permet d'avoir un accès direct à ses données.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Ce que je souhaite faire c'est creer un fichier video, donc j'encode les frames une par une et pendant cet encodage je souhaite rajouter un overlay de texte. C'est pourquoi je ne peux pas utiliser les fonctions avec un Draw context, qui dessinent directement sur l'ecran. Il faut que le texte sous forme de pixels soit stocké dans un buffer, et qu'ensuite je l'applique par dessus chaque frame, comme un calque. A la fin de l'encodage, on obtient ainsi un fichier video avec du texte en overlay.

    Je cherche donc une fonction qui prend une chaine de caracteres et des dimensions en input, et renvoie un buffer de pixels representant ce texte.

    j'espere que vous pourrez m'aider a trouver cette fonction si elle existe

    bonne journée

  11. #11
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Il n'a jamais été question de dessiner directement sur l'écran. Tu peux faire tout cela avec un DC en mémoire. Pour sauver ensuite les bits de l'image dans un buffer, tu appeles normalement GetObject(<Handle du bitmap utilisé par ton DC en mémoire>, &bitmap) suivi de GetBitmapBits (obsolète, mais apparends à l'utiliser avant de toucher à des fonctions plus complexes ...) en utilisant les informations récupérées dans bitmap (la taille du buffer doit être width * height * (bits_per_pixel / CHAR_BIT)).

  12. #12
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    CreateCompatibleDC() + CreateDIBSection() créent une image hors-écran et un Device Context qui pointe dessus (on appelle ça un "Memory DC")
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Futur Membre du Club
    Inscrit en
    Décembre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup pour vos reponses! effectivement je n'avais pas envisagé le cas d'un DC en memoire.

    Bonne journée

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

Discussions similaires

  1. [AC-2007] Calcul d'un champ texte sous forme de nombre dans requête
    Par alu1308 dans le forum IHM
    Réponses: 2
    Dernier message: 14/08/2013, 09h38
  2. Réponses: 4
    Dernier message: 15/11/2010, 10h32
  3. affichage résultats sous forme de string dans un fenêtre
    Par moi_david dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 11/06/2009, 11h19
  4. valeur d'un champ de sous form comme critere dans une requete
    Par Invité dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 12/01/2008, 23h06
  5. [Console] Affichage de texte sous forme matricielle
    Par krachik dans le forum Général Java
    Réponses: 5
    Dernier message: 01/05/2007, 21h12

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