rmorvill
Messages postés17Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention19 mai 2005
-
18 mai 2005 à 09:37
rmorvill
Messages postés17Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention19 mai 2005
-
19 mai 2005 à 10:56
bonour
je souhaiterai afficher un filtre devant mon application qui permettrai de rougir tout l'affichage.
cela sera un mode de vision de nuit.
est-il possible de changer le contraste de l'affichage?
cs_Dobel
Messages postés333Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention23 novembre 20091 19 mai 2005 à 01:40
Il y a bien des méthodes comme dessiner sur une image et filtrer les
couleurs, ou alors filtrer en utilisant un ColorSpace et un ColorModel
construits à la main, mais ce sont des méthodes qui sont superlentes si elles doivent être effectuées en continue (comme tous les pixels
sont traités 1 par 1). Par contre, elle peuvent être utilisées pour
créer une fois pour toute une version "rouge" de quelques images.
Je ne connais aucune méthode suffisamment rapide pout être utilisable en continue.
J'en profite pour rajouter une question (si quelqu'un d'autre lit ce message )
Quelqu'un sait-il comment définir le ColorModel utilisé par un java.awt.Component ?
la méthode getColorModel() existe, mais pas setColorModel :)
Je te donne en exemple 2 classes : un JPanel modifié qui affiche une
image préalablement filtrée, et le ColorSpace correspondant à un filtre
pour le rouge.
//Cet espace de couleur est monochrome. Pour faire simple, je le base
sur un espace en niveau de gris déjà existant (en fait, je ne sais pas
si c'est nécessaire....).
class MonColorSpace extends ColorSpace {
ColorSpace gray;
public MonColorSpace() {
super(ColorSpace.CS_GRAY, 1);//le 1 signifie que
notre espace de couleur n'a qu'une seule composante (pas besoin de plus
!)
//Le tableau à une longueur de 1 comme on a qu'une composante
//Les coefficients sont là juste pour que ce soit
plus beau :) On pourait juste faire la moyenne des 3 composantes.
//C'est cette étape qui est lente !!!
}
public float[] toCIEXYZ(float[] colorvalue) {
return gray.toCIEXYZ(colorvalue);
}
public float[] toRGB(float[] colorvalue) {
return new float[] {colorvalue[0], 0, 0}; //
ici, on retourne la valeur RGB qui nous intéresse : tout sur la
composante rouge, rien sur les autres :)
//Pour teinter dans une autre couleur, on pourrait par exemple faire :
//return new float[] {colorvalue[0], 0.5f*colorvalue[0], 0};
}
}
<hr size="2" width="100%">
Bonne prog
Dobel, oups, déjà 1h30 du mat...
[Une fois rien,
c'est rien; deux fois rien, ce n'est pas beaucoup, mais pour trois fois
rien, on peut déjà s'acheter quelque chose, et pour pas cher]
cs_Dobel
Messages postés333Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention23 novembre 20091 19 mai 2005 à 01:42
désolé pour les problèmes d'espacement dans le message, mais ça ne vient pas de moi....
un problème technique ??
(même ma signature a les espaces chamboulés...)
Dobel
[Une
fois rien, c'est rien; deux fois rien, ce n'est pas beaucoup, mais pour
trois fois rien, on peut déjà s'acheter quelque chose, et pour pas cher]
cs_Dobel
Messages postés333Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention23 novembre 20091 19 mai 2005 à 02:07
Arf, j'avais pas vu ton autre message aussi.
J'ai pe répondu totalement à côté de la plaque
Dobel
[Une
fois rien, c'est rien; deux fois rien, ce n'est pas beaucoup, mais pour
trois fois rien, on peut déjà s'acheter quelque chose, et pour pas cher]