Je voudrais appliquer l'addition de deux couleurs sur un JPanel. Pour cela je fais la moyenne des deux couleurs en fonctionne de leur opacité avec le code suivant :
int opaciteA = (couleurCourante.getAlpha()/(couleurCourante.getAlpha()+coul.getAlpha()));
int opaciteB = 1 - opaciteA;
int a = ((couleurCourante.getRed()*opaciteA) + (coul.getRed()*opaciteB));
int b = ((couleurCourante.getGreen()*opaciteA) + (coul.getGreen()*opaciteB));
int c = ((couleurCourante.getBlue()*opaciteA) + (coul.getBlue()*opaciteB));
couleurCourante = new Color(a, b, c);
PanCouleur.setBackground(couleurCourante);
Mon probleme est que la couleur A et complétement remplacé par la couleur B sans faire le mélange...
Quelqu'un aurait une idée de l'origine du problème ?
merci ça fonctionne déjà mieux, mais je n'obtiens pas exactement la bonne couleur.
Je suis censé obtenir ceci :
or moi j'obtiens :
Le JPanel a une couleur de base qui est (240, 240 ,240), j'ai donc essayé d'ajouter un entier que j'incrémente de un quand je clique sur le bouton pour ajouter la couleur, pour que lorsque l'entier vaut 0, le mélange ne prenne pas en compte la couleur initiale du JPanel, mais ça ne fonctionne pas non plus.
Auriez-vous une idée ?
opaciteA = (((double) couleurCourante.getAlpha())/(couleurCourante.getAlpha()+coul.getAlpha()));
opaciteB = 1 - opaciteA;
int a = ((int)((couleurCourante.getRed()*opaciteA) + (coul.getRed()*opaciteB)));
int b = ((int)((couleurCourante.getGreen()*opaciteA) + (coul.getGreen()*opaciteB)));
int c = ((int)((couleurCourante.getBlue()*opaciteA) + (coul.getBlue()*opaciteB)));
couleurCourante = new Color(a, b, c);
PanCouleur.setBackground(couleurCourante);
Je pense aussi car si j'ai bien compris tu souhaiterais faire calcul avec la couleur final rendu une fois l'opacité ajouter et ceux pour toutes les couleurs
a moins de pouvoir changer sa aussi en rgb je ne pense pas non plus que le calcul via l'opacité fonctionnera
yasakani no magatama
Mélange de couleurs
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
yasakani no magatama