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

Graphisme Java Discussion :

[Image][JAI][AWT] passage RGB -> HSL


Sujet :

Graphisme Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Points : 89
    Points
    89
    Par défaut [Image][JAI][AWT] passage RGB -> HSL
    Bonjour, j'aurais besoin pour une application de traitement d'image (qui utilise JAI, awt,..) de pouvoir changer de ColorSpace...et plus précisémment de passer du RGB par défaut au HSL (TSL en fançais pour Teinte, saturation, luminosité). L'idée étant de pouvoir grâce à ca mettre par exemple une image en niveaux de gris mais conserver le rouge en jouant sur les 3 paramètres.

    J'arrive à changer d'espace colorimétrique pour passer vers le niveaux de gris (cf ci-dessous), mais impossible de passer au HSL.


    Je suis preneur de toute idée ou de portion de code car le temps joue contre moi.

    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
     
      PlanarImage im = tools.Divers.chooseP();
        BufferedImage bimg = im.getAsBufferedImage();
        ColorSpace gray_space = ColorSpace.getInstance (ColorSpace.CS_GRAY);
      ColorConvertOp convertToGrayOp = new ColorConvertOp ( gray_space, null);
      //BufferedImage gray_image = convertToGrayOp.filter (source_image, null);
        bimg = convertToGrayOp.filter (bimg, null);
     
      ImageCanvas imagecanvas=new ImageCanvas(bimg);
        JFrame jframe = new JFrame("tada");
        jframe.add(imagecanvas);
        jframe.setSize(400, 400);
        jframe.setVisible(true);
        jframe.isAlwaysOnTop();
        jframe.isResizable();
        jframe.pack();
    Un grand merci...

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Paur être tout simplement car tu cherchais HSL alors qu'il fallait cherches HLS (bon ensuite je raconte peut être des conneries, mais au vu de ton code essaies avec le ColorSpace TYPE_HLS à la place du CS_GRAY)
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Points : 89
    Points
    89
    Par défaut
    Hello Sinok,

    Merci pour ta réponse.
    Crois-moi j'ai bien cherché pour HSL, HLS et TLS...mais je cale

    Pour ce qui est du code, en fait je pensais aussi que TYPE_HLS serait la solution, c'était d'ailleurs mon premier essai. En fait non visiblement les seuls colorspaces valides sont les constantes prédéfinies (genre cs_xxx ... dont cs_gray que j'ai utilisé pour mes tests).
    Par acquis de conscience je viens de retester "TYPE_HSL" mais voici l'erreur...tu remarqueras le "unknown colorspace "



    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Unknown color space
            at java.awt.color.ColorSpace.getInstance(ColorSpace.java:341)
            at testjda.TestJDAView.jMenuItem1ActionPerformed(TestJDAView.java:2059)
            at testjda.TestJDAView.access$4800(TestJDAView.java:55)
            at testjda.TestJDAView$44.actionPerformed(TestJDAView.java:821)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
            at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
            at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1051)
            at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1092)
            at java.awt.Component.processMouseEvent(Component.java:5517)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
            at java.awt.Component.processEvent(Component.java:5282)
            at java.awt.Container.processEvent(Container.java:1966)
            at java.awt.Component.dispatchEventImpl(Component.java:3984)
            at java.awt.Container.dispatchEventImpl(Container.java:2024)
            at java.awt.Component.dispatchEvent(Component.java:3819)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
            at java.awt.Container.dispatchEventImpl(Container.java:2010)
            at java.awt.Window.dispatchEventImpl(Window.java:1791)
            at java.awt.Component.dispatchEvent(Component.java:3819)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    ...une idée?

    Par contre HSB (==HSV==TSV) pourrait aussi convenir pour mon application je pense, j'élargis le champs de manoeuvre même si le problème reste quasimment identique.

    Personne n'a jamais du faire ça?
    ...dire qu'en C# ça se fait en 2 lignes ...

Discussions similaires

  1. [Image] passage du colorspace RGB vers HSL
    Par pssst dans le forum 2D
    Réponses: 4
    Dernier message: 02/01/2009, 18h41
  2. Conversion d'une image rgb en hsl
    Par ranell dans le forum Images
    Réponses: 13
    Dernier message: 01/03/2007, 22h03
  3. [AWT] Color RGB en Hexadécimal ?
    Par ypicman dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 31/03/2006, 09h15
  4. Changement d'image suivent le passage du curseur!
    Par ghyosmik dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 03/01/2006, 17h22
  5. [IMAGE JAI] java.lang.Error
    Par babyboy dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 18/05/2004, 14h29

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