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

2D Java Discussion :

[Color] Comment faire pour additionner des couleurs ?


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut [Color] Comment faire pour additionner des couleurs ?
    J'ai un tableau avec une ligne sur 2 de couleur différente (lisibilité oblige).

    Je veux lors de la sélection des filtres définir une couleur de sélection (un bleu par exemple) que je vienne ajouter aux couleurs avant sélection.

    Donc je voudrai faire un truc du genre Color(123,234,213) + Color(144,234,211) = ??

    Comment je fais ?

    Parametre alpha en plus ou pas ?

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 909
    Billets dans le blog
    54
    Par défaut
    Alors réfléchissons et retrouvons le livre . Les règles de Porter-Duff (voir la classe AlphaComposite et le livre Java 2D Graphics chez O'Reilly) sont :

    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
    16
    17
    18
    19
    20
    21
    22
    23
     
    newColor = αs . fs . cs + αd . fd . cd
    newAlpha = fs . αs + fd . αd
     
    Source = la couleur qu'on ajoute.
    αs = source alpha
    fs = fraction de source
    cs = couleur source (RGB solide)
     
    Destination = la couleur prexistante.
    αd = destination alpha
    fd = franction de destination
    cd = couleur destination (RGB solide)
     
    COMPOSITE               fs                   fd
    SrcOver                     1                    1-αs   
    DstOver                     1-αd               1
    Clear                         0                    0
    Src                            1                    0
    SrcIn                         αd                  0
    DstIn                         0                    αs
    SrcOut                       1-αd               0
    DstOut                       0                    1-αs
    SrcOver est la règle de base par défaut lorsqu'on dessine dans un Graphics on met la source par dessus la destination c'est probablement celle que tu veux utiliser. Attention ca veut bien dire qu'une couleur source opaque remplace complètement une couleur destination.
    Si tu veux que les 2 se mélangent pour former une autre couleur il faut que la couleur source ne soit pas solide (αs != 1).

    La couleur source est la couleur qu'on ajoute pardessus.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 909
    Billets dans le blog
    54
    Par défaut
    Le bouquin (qui commence a dater) ne donne que 8 règles alors qu'il y en a 12. Mais plusieurs ont été rajoutées comme AlphaComposite.XOR depuis Java 1.4.
    => Voir la doc de cette classe pour les valeurs de fs et fd pour les règles manquantes.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Par défaut
    T'es trop fort !

    J'aurai tellement aimé que java nous donne quelque chose de simple (déception).

    Bon donc je vais analyser tout ca.

    Merci bien !

    Rem: Il y a une autre question au sujet des caret pour les textfields sur le forum.

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 909
    Billets dans le blog
    54
    Par défaut
    Arf mais la réponse est simple (regarde ce que donne l'équation avec les paramètres du ScrOver...) et Java la donne (la doc de AlphaComposite !!

    Que demander de plus ?

    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 14/02/2007, 17h03
  2. Réponses: 1
    Dernier message: 06/09/2006, 18h11
  3. [VB6]Comment faire pour récuperer des donnée sur un mp3 ou wav ?
    Par MegaBigBoss dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 13/06/2006, 16h08
  4. [c#] comment faire pour garder des noeuds ouverts treeview?
    Par irnbru dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/11/2005, 00h47
  5. comment faire pour developper des prog en win32
    Par rhodan51 dans le forum Autres éditeurs
    Réponses: 11
    Dernier message: 09/11/2003, 19h39

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