Transposition d'images

Aller en bas

Transposition d'images Empty Transposition d'images

Message  Gus le Mer 6 Juil - 13:01

Voici quelques entités de traitement pour transposer les images (objets de type java.awt.RenderedImage) grâce à l'API Java Advanced Imaging (JAI).

L'image ci-dessous, une illustration de l'anime la princesse Mononoke, permet d'illustrer ces différentes transformations. (Cette image sera reprise par la suite pour illustrer les transformations d'image à venir)
Transposition d'images Mononoke_original


Le retournement vertical
Code:
package gus05.entity.gus.image.transform.rendered.flip.vertical;

import java.awt.image.RenderedImage;
import java.awt.image.renderable.ParameterBlock;
import javax.media.jai.JAI;
import javax.media.jai.operator.TransposeDescriptor;
import gus05.framework.core.Entity;
import gus05.framework.features.Transform;

public class ImageFlipVertical implements Entity, Transform {

    public String getName()            {return "gus.image.transform.rendered.flip.vertical";}
    public String getCreationDate()      {return "2011.07.06";}

   
    public Object transform(Object obj) throws Exception
    {
       RenderedImage image = (RenderedImage) obj;
       
       ParameterBlock pb = new ParameterBlock();
       pb.addSource(image);
       pb.add(TransposeDescriptor.FLIP_VERTICAL);
       return JAI.create("transpose",pb);
    }

    static{System.setProperty("com.sun.media.jai.disableMediaLib","true");}
}
Transposition d'images Mononoke_flip_vertical

Le retournement horizontal

Code:
package gus05.entity.gus.image.transform.rendered.flip.horizontal;

import java.awt.image.RenderedImage;
import java.awt.image.renderable.ParameterBlock;
import javax.media.jai.JAI;
import javax.media.jai.operator.TransposeDescriptor;
import gus05.framework.core.Entity;
import gus05.framework.features.Transform;

public class ImageFlipHorizontal implements Entity, Transform {

    public String getName()            {return "gus.image.transform.rendered.flip.horizontal";}
    public String getCreationDate()      {return "2011.07.06";}

   
    public Object transform(Object obj) throws Exception
    {
       RenderedImage image = (RenderedImage) obj;
       
       ParameterBlock pb = new ParameterBlock();
       pb.addSource(image);
       pb.add(TransposeDescriptor.FLIP_HORIZONTAL);
       return JAI.create("transpose",pb);
    }

    static{System.setProperty("com.sun.media.jai.disableMediaLib","true");}
}
Transposition d'images Mononoke_flip_horizontal

Le retournement diagonal

Code:
package gus05.entity.gus.image.transform.rendered.flip.diagonal;

import java.awt.image.RenderedImage;
import java.awt.image.renderable.ParameterBlock;
import javax.media.jai.JAI;
import javax.media.jai.operator.TransposeDescriptor;
import gus05.framework.core.Entity;
import gus05.framework.features.Transform;

public class ImageFlipDialog implements Entity, Transform {

    public String getName()            {return "gus.image.transform.rendered.flip.diagonal";}
    public String getCreationDate()      {return "2011.07.06";}

   
    public Object transform(Object obj) throws Exception
    {
       RenderedImage image = (RenderedImage) obj;
       
       ParameterBlock pb = new ParameterBlock();
       pb.addSource(image);
       pb.add(TransposeDescriptor.FLIP_DIAGONAL);
       return JAI.create("transpose",pb);
    }

    static{System.setProperty("com.sun.media.jai.disableMediaLib","true");}
}
Transposition d'images Mononoke_flip_diagonal

Le retournement anti-diagonal

Code:
package gus05.entity.gus.image.transform.rendered.flip.antidiagonal;

import java.awt.image.RenderedImage;
import java.awt.image.renderable.ParameterBlock;
import javax.media.jai.JAI;
import javax.media.jai.operator.TransposeDescriptor;
import gus05.framework.core.Entity;
import gus05.framework.features.Transform;

public class ImageFlipAntiDialog implements Entity, Transform {

    public String getName()            {return "gus.image.transform.rendered.flip.antidiagonal";}
    public String getCreationDate()      {return "2011.07.06";}


    public Object transform(Object obj) throws Exception
    {
       RenderedImage image = (RenderedImage) obj;
       
       ParameterBlock pb = new ParameterBlock();
       pb.addSource(image);
       pb.add(TransposeDescriptor.FLIP_ANTIDIAGONAL);
       return JAI.create("transpose",pb);
    }

    static{System.setProperty("com.sun.media.jai.disableMediaLib","true");}
}
Transposition d'images Mononoke_flip_antidiagonal

La rotation de 90°

Code:
package gus05.entity.gus.image.transform.rendered.rotate90;

import java.awt.image.RenderedImage;
import java.awt.image.renderable.ParameterBlock;
import javax.media.jai.JAI;
import javax.media.jai.operator.TransposeDescriptor;
import gus05.framework.core.Entity;
import gus05.framework.features.Transform;

public class ImageRotate90 implements Entity, Transform {

    public String getName()            {return "gus.image.transform.rendered.rotate90";}
    public String getCreationDate()      {return "2011.07.05";}


    public Object transform(Object obj) throws Exception
    {
       RenderedImage image = (RenderedImage) obj;
       ParameterBlock pb = new ParameterBlock();
       pb.addSource(image);
       pb.add(TransposeDescriptor.ROTATE_90);
       return JAI.create("transpose",pb);
    }

    static{System.setProperty("com.sun.media.jai.disableMediaLib","true");}
}
Transposition d'images Mononoke_rotate_90

La rotation de 180°

Code:
package gus05.entity.gus.image.transform.rendered.rotate180;

import java.awt.image.RenderedImage;
import java.awt.image.renderable.ParameterBlock;
import javax.media.jai.JAI;
import javax.media.jai.operator.TransposeDescriptor;
import gus05.framework.core.Entity;
import gus05.framework.features.Transform;

public class ImageRotate180 implements Entity, Transform {

    public String getName()            {return "gus.image.transform.rendered.rotate180";}
    public String getCreationDate()      {return "2011.07.05";}


    public Object transform(Object obj) throws Exception
    {
       RenderedImage image = (RenderedImage) obj;
       ParameterBlock pb = new ParameterBlock();
       pb.addSource(image);
       pb.add(TransposeDescriptor.ROTATE_180);
       return JAI.create("transpose",pb);
    }

    static{System.setProperty("com.sun.media.jai.disableMediaLib","true");}
}
Transposition d'images Mononoke_rotate_180

La rotation de 270°

Code:
package gus05.entity.gus.image.transform.rendered.rotate270;

import java.awt.image.RenderedImage;
import java.awt.image.renderable.ParameterBlock;
import javax.media.jai.JAI;
import javax.media.jai.operator.TransposeDescriptor;
import gus05.framework.core.Entity;
import gus05.framework.features.Transform;

public class ImageRotate270 implements Entity, Transform {

    public String getName()            {return "gus.image.transform.rendered.rotate270";}
    public String getCreationDate()      {return "2011.07.05";}

   
    public Object transform(Object obj) throws Exception
    {
       RenderedImage image = (RenderedImage) obj;
       ParameterBlock pb = new ParameterBlock();
       pb.addSource(image);
       pb.add(TransposeDescriptor.ROTATE_270);
       return JAI.create("transpose",pb);
    }

    static{System.setProperty("com.sun.media.jai.disableMediaLib","true");}
}
Transposition d'images Mononoke_rotate_270
Gus
Gus
Admin

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

Voir le profil de l'utilisateur http://www.gus05.com

Revenir en haut Aller en bas

Revenir en haut


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