Projet gus05 de développement Java
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-28%
Le deal à ne pas rater :
Brandt LVE127J – Lave-vaisselle encastrable 12 couverts – L60cm
279.99 € 390.99 €
Voir le deal

Colorisation des images

Aller en bas

Colorisation des images Empty Colorisation des images

Message  Gus Ven 8 Juil - 18:26

Nous allons appliquer la technique du traitement des images point par point pour les coloriser d'une teinte spécifique.
La teinte correspond en fait à la valeur de HUE dans le modèle HSB des couleurs (H:Hue , S:Saturation , B:Brightness).

Image originale :
Colorisation des images Mononoke_original

Colorisation en bleu : gus.image.transform.rendered.color.hue.blue
Code:
package gus05.entity.gus.image.transform.rendered.color.hue.blue;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import gus05.framework.core.Entity;
import gus05.framework.core.Outside;
import gus05.framework.core.Service;
import gus05.framework.features.Transform;

public class ImageColorHueBlue implements Entity, Transform {


    public String getName()            {return "gus.image.transform.rendered.color.hue.blue";}
    public String getCreationDate()      {return "2011.07.07";}

    public static final Color COLOR = Color.BLUE;
    private float hue;
   
    private Service toBufferedImage;
   
    public ImageColorHueBlue() throws Exception
    {
       toBufferedImage = Outside.service(this,"gus.image.convert.tobufferedimage");
       
       float[] hsb = Color.RGBtoHSB(COLOR.getRed(),COLOR.getGreen(),COLOR.getBlue(),null);
       hue = hsb[0];
    }

    public Object transform(Object obj) throws Exception
    {
       BufferedImage image = (BufferedImage) toBufferedImage.transform(obj);
       int width = image.getWidth();
       int heigth = image.getHeight();
       
       BufferedImage buffImg = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB);
       Graphics2D g = buffImg.createGraphics();
       
       for(int i=0;i<width;i++) for(int j=0;j<heigth;j++)
       {
          int rgb = image.getRGB(i,j);
          Color c = new Color(rgb);
          
          float[] hsb = Color.RGBtoHSB(c.getRed(),c.getGreen(),c.getBlue(),null);
          float saturation = hsb[1];
          float brightness = hsb[2];
          
          g.setColor(Color.getHSBColor(hue,saturation,brightness));
          g.drawRect(i,j,1,1);
       }
       g.dispose();
       return buffImg;
    }
}
Colorisation des images Mononoke_hue_blue

Colorisation en cyan : gus.image.transform.rendered.color.hue.cyan
Code:
package gus05.entity.gus.image.transform.rendered.color.hue.cyan;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import gus05.framework.core.Entity;
import gus05.framework.core.Outside;
import gus05.framework.core.Service;
import gus05.framework.features.Transform;

public class ImageColorHueCyan implements Entity, Transform {

    public String getName()            {return "gus.image.transform.rendered.color.hue.cyan";}
    public String getCreationDate()      {return "2011.07.07";}

    public static final Color COLOR = Color.CYAN;
    private float hue;
   
    private Service toBufferedImage;
   
    public ImageColorHueCyan() throws Exception
    {
       toBufferedImage = Outside.service(this,"gus.image.convert.tobufferedimage");
       
       float[] hsb = Color.RGBtoHSB(COLOR.getRed(),COLOR.getGreen(),COLOR.getBlue(),null);
       hue = hsb[0];
    }

    public Object transform(Object obj) throws Exception
    {
       BufferedImage image = (BufferedImage) toBufferedImage.transform(obj);
       int width = image.getWidth();
       int heigth = image.getHeight();
       
       BufferedImage buffImg = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB);
       Graphics2D g = buffImg.createGraphics();
       
       for(int i=0;i<width;i++) for(int j=0;j<heigth;j++)
       {
          int rgb = image.getRGB(i,j);
          Color c = new Color(rgb);
          
          float[] hsb = Color.RGBtoHSB(c.getRed(),c.getGreen(),c.getBlue(),null);
          float saturation = hsb[1];
          float brightness = hsb[2];
          
          g.setColor(Color.getHSBColor(hue,saturation,brightness));
          g.drawRect(i,j,1,1);
       }
       g.dispose();
       return buffImg;
    }
}
Colorisation des images Mononoke_hue_cyan

Colorisation en vert : gus.image.transform.rendered.color.hue.green
Code:
package gus05.entity.gus.image.transform.rendered.color.hue.green;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import gus05.framework.core.Entity;
import gus05.framework.core.Outside;
import gus05.framework.core.Service;
import gus05.framework.features.Transform;

public class ImageColorHueGreen implements Entity, Transform {

    public String getName()            {return "gus.image.transform.rendered.color.hue.green";}
    public String getCreationDate()      {return "2011.07.07";}

    public static final Color COLOR = Color.GREEN;
    private float hue;
   
    private Service toBufferedImage;
   
    public ImageColorHueGreen() throws Exception
    {
       toBufferedImage = Outside.service(this,"gus.image.convert.tobufferedimage");
       
       float[] hsb = Color.RGBtoHSB(COLOR.getRed(),COLOR.getGreen(),COLOR.getBlue(),null);
       hue = hsb[0];
    }

    public Object transform(Object obj) throws Exception
    {
       BufferedImage image = (BufferedImage) toBufferedImage.transform(obj);
       int width = image.getWidth();
       int heigth = image.getHeight();
       
       BufferedImage buffImg = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB);
       Graphics2D g = buffImg.createGraphics();
       
       for(int i=0;i<width;i++) for(int j=0;j<heigth;j++)
       {
          int rgb = image.getRGB(i,j);
          Color c = new Color(rgb);
          
          float[] hsb = Color.RGBtoHSB(c.getRed(),c.getGreen(),c.getBlue(),null);
          float saturation = hsb[1];
          float brightness = hsb[2];
          
          g.setColor(Color.getHSBColor(hue,saturation,brightness));
          g.drawRect(i,j,1,1);
       }
       g.dispose();
       return buffImg;
    }
}
Colorisation des images Mononoke_hue_green

Colorisation en orange : gus.image.transform.rendered.color.hue.orange
Code:
package gus05.entity.gus.image.transform.rendered.color.hue.orange;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import gus05.framework.core.Entity;
import gus05.framework.core.Outside;
import gus05.framework.core.Service;
import gus05.framework.features.Transform;

public class ImageColorHueOrange implements Entity, Transform {

    public String getName()            {return "gus.image.transform.rendered.color.hue.orange";}
    public String getCreationDate()      {return "2011.07.07";}

    public static final Color COLOR = Color.ORANGE;
    private float hue;
   
    private Service toBufferedImage;
   
    public ImageColorHueOrange() throws Exception
    {
       toBufferedImage = Outside.service(this,"gus.image.convert.tobufferedimage");
       
       float[] hsb = Color.RGBtoHSB(COLOR.getRed(),COLOR.getGreen(),COLOR.getBlue(),null);
       hue = hsb[0];
    }

    public Object transform(Object obj) throws Exception
    {
       BufferedImage image = (BufferedImage) toBufferedImage.transform(obj);
       int width = image.getWidth();
       int heigth = image.getHeight();
       
       BufferedImage buffImg = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB);
       Graphics2D g = buffImg.createGraphics();
       
       for(int i=0;i<width;i++) for(int j=0;j<heigth;j++)
       {
          int rgb = image.getRGB(i,j);
          Color c = new Color(rgb);
          
          float[] hsb = Color.RGBtoHSB(c.getRed(),c.getGreen(),c.getBlue(),null);
          float saturation = hsb[1];
          float brightness = hsb[2];
          
          g.setColor(Color.getHSBColor(hue,saturation,brightness));
          g.drawRect(i,j,1,1);
       }
       g.dispose();
       return buffImg;
    }
}
Colorisation des images Mononoke_hue_orange

Colorisation en rouge : gus.image.transform.rendered.color.hue.red
Code:
package gus05.entity.gus.image.transform.rendered.color.hue.red;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import gus05.framework.core.Entity;
import gus05.framework.core.Outside;
import gus05.framework.core.Service;
import gus05.framework.features.Transform;

public class ImageColorHueRed implements Entity, Transform {

    public String getName()            {return "gus.image.transform.rendered.color.hue.red";}
    public String getCreationDate()      {return "2011.07.07";}

    public static final Color COLOR = Color.RED;
    private float hue;
   
    private Service toBufferedImage;
   
    public ImageColorHueRed() throws Exception
    {
       toBufferedImage = Outside.service(this,"gus.image.convert.tobufferedimage");
       
       float[] hsb = Color.RGBtoHSB(COLOR.getRed(),COLOR.getGreen(),COLOR.getBlue(),null);
       hue = hsb[0];
    }

    public Object transform(Object obj) throws Exception
    {
       BufferedImage image = (BufferedImage) toBufferedImage.transform(obj);
       int width = image.getWidth();
       int heigth = image.getHeight();
       
       BufferedImage buffImg = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB);
       Graphics2D g = buffImg.createGraphics();
       
       for(int i=0;i<width;i++) for(int j=0;j<heigth;j++)
       {
          int rgb = image.getRGB(i,j);
          Color c = new Color(rgb);
          
          float[] hsb = Color.RGBtoHSB(c.getRed(),c.getGreen(),c.getBlue(),null);
          float saturation = hsb[1];
          float brightness = hsb[2];
          
          g.setColor(Color.getHSBColor(hue,saturation,brightness));
          g.drawRect(i,j,1,1);
       }
       g.dispose();
       return buffImg;
    }
}
Colorisation des images Mononoke_hue_red

Colorisation en jaune: gus.image.transform.rendered.color.hue.yellow
Code:
package gus05.entity.gus.image.transform.rendered.color.hue.yellow;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import gus05.framework.core.Entity;
import gus05.framework.core.Outside;
import gus05.framework.core.Service;
import gus05.framework.features.Transform;

public class ImageColorHueYellow implements Entity, Transform {

    public String getName()            {return "gus.image.transform.rendered.color.hue.yellow";}
    public String getCreationDate()      {return "2011.07.07";}

    public static final Color COLOR = Color.YELLOW;
    private float hue;
   
    private Service toBufferedImage;
   
    public ImageColorHueYellow() throws Exception
    {
       toBufferedImage = Outside.service(this,"gus.image.convert.tobufferedimage");
       
       float[] hsb = Color.RGBtoHSB(COLOR.getRed(),COLOR.getGreen(),COLOR.getBlue(),null);
       hue = hsb[0];
    }

    public Object transform(Object obj) throws Exception
    {
       BufferedImage image = (BufferedImage) toBufferedImage.transform(obj);
       int width = image.getWidth();
       int heigth = image.getHeight();
       
       BufferedImage buffImg = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB);
       Graphics2D g = buffImg.createGraphics();
       
       for(int i=0;i<width;i++) for(int j=0;j<heigth;j++)
       {
          int rgb = image.getRGB(i,j);
          Color c = new Color(rgb);
          
          float[] hsb = Color.RGBtoHSB(c.getRed(),c.getGreen(),c.getBlue(),null);
          float saturation = hsb[1];
          float brightness = hsb[2];
          
          g.setColor(Color.getHSBColor(hue,saturation,brightness));
          g.drawRect(i,j,1,1);
       }
       g.dispose();
       return buffImg;
    }
}
Colorisation des images Mononoke_hue_yellow

Colorisation en magenta : gus.image.transform.rendered.color.hue.magenta
Code:
package gus05.entity.gus.image.transform.rendered.color.hue.magenta;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import gus05.framework.core.Entity;
import gus05.framework.core.Outside;
import gus05.framework.core.Service;
import gus05.framework.features.Transform;

public class ImageColorHueMagenta implements Entity, Transform {

    public String getName()            {return "gus.image.transform.rendered.color.hue.magenta";}
    public String getCreationDate()      {return "2011.07.07";}

    public static final Color COLOR = Color.MAGENTA;
    private float hue;
   
    private Service toBufferedImage;
   
    public ImageColorHueMagenta() throws Exception
    {
       toBufferedImage = Outside.service(this,"gus.image.convert.tobufferedimage");
       
       float[] hsb = Color.RGBtoHSB(COLOR.getRed(),COLOR.getGreen(),COLOR.getBlue(),null);
       hue = hsb[0];
    }

    public Object transform(Object obj) throws Exception
    {
       BufferedImage image = (BufferedImage) toBufferedImage.transform(obj);
       int width = image.getWidth();
       int heigth = image.getHeight();
       
       BufferedImage buffImg = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB);
       Graphics2D g = buffImg.createGraphics();
       
       for(int i=0;i<width;i++) for(int j=0;j<heigth;j++)
       {
          int rgb = image.getRGB(i,j);
          Color c = new Color(rgb);
          
          float[] hsb = Color.RGBtoHSB(c.getRed(),c.getGreen(),c.getBlue(),null);
          float saturation = hsb[1];
          float brightness = hsb[2];
          
          g.setColor(Color.getHSBColor(hue,saturation,brightness));
          g.drawRect(i,j,1,1);
       }
       g.dispose();
       return buffImg;
    }
}
Colorisation des images Mononoke_hue_magenta
Gus
Gus
Admin

Messages : 249
Date d'inscription : 01/09/2009

http://www.gus05.com

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum