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

C++Builder Discussion :

[BCB6] CopyRect et transparence


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 341
    Par défaut [BCB6] CopyRect et transparence
    Bonjour,

    je voudrais copier une partie d'un bitmap, dans un autre bitmap, mais avec un effet de transparence.
    En clair, le bitmap modèle possède des pixels de couleur noire, qui représente les zones de transparence.
    Avec les fonctions Canvas->Draw() et compagnie, pas de problème, la transparence est gérée par le Canvas.
    Par contre, Canvas->CopyRect() s'appuie sur Canvas->CopyMode. Et là, pas moyen d'indiquer que le noir et la couleur transparente. Y a-t-il une solution ?

    ATTENTION: pas question d'utiliser Pixel[x][y] pour tester chaque points. Faut que ça tourne à fond !

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    On a droit à ScanLine alors ?
    Si les dimensions du bitmap s'y prètent on peut minimiser l'impact de la boucle et donc gagner encore un peu plus de temps.

    L'autre solution consisterait à réorganiser les pixels à copier de manière à supprimer le test : un pixel peut être défini à l'aide de : [ligne, colonne, couleur]... On ne traiterait donc que les bons pixels (comme la TNT en somme) !

    A plus !

  3. #3
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 341
    Par défaut
    NAN pas de ScanLine()
    Je plaisante bien sûr.

    En fait j'aimerais aussi éviter cette solution.
    Je pensais qu'il y avait un moyen plus efficace, compris dans la classe TBitmap elle-même. Ou peut être un algoritme genre CopyRect() avec cmSrcAnd, puis cmPatInvert...
    Enfin bref, de la combinaison de bits mais traitée en masse.

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

Discussions similaires

  1. [BCB6] Creation icone probleme de transparence
    Par winow dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/01/2009, 23h08
  2. Comment rendre transparent le tour d un icone
    Par NeoRonin dans le forum Composants VCL
    Réponses: 7
    Dernier message: 03/03/2003, 01h40
  3. Réponses: 1
    Dernier message: 23/02/2003, 06h22
  4. ouverture d'une form en fondu transparent
    Par nicholz dans le forum Composants VCL
    Réponses: 9
    Dernier message: 08/01/2003, 11h06
  5. PB d'import avec les ActiveX sous BCB6
    Par dergen dans le forum C++Builder
    Réponses: 4
    Dernier message: 29/11/2002, 10h18

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