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

Langage Delphi Discussion :

incrustation avec "bordure" et TCanvas


Sujet :

Langage Delphi

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut incrustation avec "bordure" et TCanvas
    Bonjour,
    j'essai désespérément de réaliser une incrustation "contourée" dans une image (dans le canvas d'un TImage)
    Je travail avec delphi 7
    j'ai pour l'instant utilisé drawtext (api win32 il me semble) et textout (méthode des TCanvas) sans succès…
    Pour faire le contour, j'incruste 9 fois, décalé de 1 pixel dans toutes les directions autour de la position final d'incrustation.
    Puis je change la couleur (et uniquement ça) et je fais une dernière incrustation.
    Le problème c'est que ça marche bien la plus part du temps (>95%), mais des fois le changement de couleur ne marche pas ou la police n'est pas respectée
    (voir pièces jointes)
    Si quelqu'un la déjà fait ou a une piste, je suis plus que preneur, car la je sèche complètement.
    D'avance, Merci
    FP

    Pour info, dans mon appli, la charge cpu est élevée (>90%) mais je gère l'incrustation de mes images dans un thread à part et je ne suis normalement pas trop soumis aux contraintes de temps (c'est uniquement du post traitement…)
    Images attachées Images attachées    

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    As-tu essayé de faire les Textout avec un background transparent ?
    voir :
    http://community.borland.com/article...,15627,00.html

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut fond transparent...
    Oui, si tu regardes les images jointes, on voit le fond de l'image derriere le texte.
    Si le fond n'etait pas transparent, il y aurait un "bloc" de couleur autour de mon texte (de la taille du TRect utilisé par drawtext)

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    En effet, jaurais du m'apercevoir que le background était bien transparent .
    Y aurait-il pas un conflit d'accès sur le canvas à cause des 2 threads :
    Est-ce que, en même temps que la gestion des contours par le thread de post-traitement, le canvas de l'image ou ses attributs (font, brush.color, ...) ne peuvent pas être modifiés par le thread principal ?

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 434
    Points : 5 846
    Points
    5 846
    Par défaut
    salut
    comment fait tu tes mis a jour de canvas ?

    @+ Phil

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut partie "section critique" et autres acces concurentiels
    Je n'ai pas de problème d'accès concurentiels:
    mon thread principal s'occupe de faire des captures d'images à une certaine cadence, puis place mes objets (qui contiennent chacun une image capturée + des infos sur celle-ci) dans une pile FIFO (c'est là qu'est gérée toute la partie d'accès concurentiel entre mon thread principal et mon thread de post-traitement).
    Par la suite (sans trop de contraintes de temps), mon thread de post-traitement gère le stockage des infos, l'incrustation, puis la sauvegarde de mes images.

    je manipule donc un canvas par image (depuis un thread unique, celui de post-traitement), et je suis donc censé etre tranquille...
    enfin ça s'etait la théorie, car en pratique, j'ai comme je l'ai dit plus haut j'ai pas mal de souci lorsque je change la couleur, soit en faisant:

    font.color:=maCouleur
    soit
    SetTextColor(monCanvas.Handle, maCouleur);

    avec pour incruster un :
    DrawText(monCanvas.Handle, PChar(monMsg), length(monMsg), monTRect, 0);

    0 pour les options: pas de DT_NOCLIP ou autres, car j'ai voulu enlever toutes optimisations ou formattage qui auraient pu etre la source de mes problèmes...
    En tout cas merci pour vos pistes... je cherche toujours de mon coté.
    Si je trouve, je préviendrais ici, bien sûr.

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