Filtre Image [Résolu]

Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 3 janv. 2007 à 01:45 - Dernière réponse : Twinuts 5279 Messages postés dimanche 4 mai 2003Date d'inscription 19 septembre 2018 Dernière intervention
- 4 janv. 2007 à 09:30
Salut:

Comment faire pour "filtrer"/"supprimer" les pixels qu'on ne veut pas les afficher lors de l'affichage d'une image. Par exemple je ne veux pas afficher les pixels noirs.

J'en ai besoin pour faire la superposition de deux images.
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Twinuts 5279 Messages postés dimanche 4 mai 2003Date d'inscription 19 septembre 2018 Dernière intervention - 3 janv. 2007 à 14:13
3
Merci
Salut,

regarde du coté des classes :
java.awt.image.Kernel
java.awt.image.ConvolveOp

ou
encore du coté de java.awt.image.RGBImageFilter et remplace les pixels
noir par des pixels transparent (pour des exemples d'application de
cette classe regarde dans mes sources sur les filtre image):

voici un petit exemple :

import java.awt.Color;
import java.awt.Image;
import java.awt.image.FilteredImageSource;
import java.awt.image.RGBImageFilter;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Test extends JFrame{
    private static final long    serialVersionUID    = 1802199483736051124L;

    public Test(){
        super();
        setDefaultCloseOperation(3);
        setSize(300, 300);
        setLocationRelativeTo(null);
        setBackground(Color.YELLOW);//histoire de verifier
        //on charge l'image
        Image img = getToolkit().createImage("img.png");
        //on applique le filtre
        FilteredImageSource fis = new FilteredImageSource(img.getSource(), new ImageFilters());
        //on met a jour l'image avec le filtre
        img = getToolkit().createImage(fis);
           
        setContentPane(new JLabel(new ImageIcon(img)));
       
    }
   
    public static void main(String[] args) {
        new Test().setVisible(true);
    }
}

class ImageFilters extends RGBImageFilter{
   
    public int filterRGB(int x, int y, int rgb) {
        if(isBlack(rgb)){
            //couleur de transparence
            int a = 0xFF;
            //on recupe les couleurs r, g et b
            int r = (rgb & 0xFF0000) >> 16;
            int g = (rgb & 0xFF00) >> 8;
            int b = (rgb & 0xFF);
            //on retourne la couleur en argb
            return (a | r | g | b);
        }
        //on preserve la transparence
        int a = (rgb & 0xFF000000);
        return a | rgb;
    }
   
    private boolean isBlack(int rgb){
        int n = 80;
        //on parse la couleur si elle est relativement sombre
        Color c = new Color(rgb);
        if(c.getRed() <= n && c.getGreen() <= n && c.getBlue() <= n)
            return true;
        return false;
    }
}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA

Merci Twinuts 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de Twinuts
sheorogath 2465 Messages postés samedi 21 février 2004Date d'inscription 29 janvier 2010 Dernière intervention - 3 janv. 2007 à 16:46
0
Merci
me dit qqchose ce morceau de code .... lol

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
Commenter la réponse de sheorogath
Twinuts 5279 Messages postés dimanche 4 mai 2003Date d'inscription 19 septembre 2018 Dernière intervention - 3 janv. 2007 à 16:58
0
Merci
Salut,

lol ouep mais en moins long quand meme ;)

[auteurdetail.aspx?ID=234347 sheorogath]>dans la semaine je m'occupe de corriger l'erreur sur les plugins du projet en question ;)

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Commenter la réponse de Twinuts
sheorogath 2465 Messages postés samedi 21 février 2004Date d'inscription 29 janvier 2010 Dernière intervention - 3 janv. 2007 à 17:58
0
Merci
ok pas de blem si tu renvoi par mail si je suis pas sur msn ;) (avec ce quil faut savoir pour le svn je texplique plus tard ^^)

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
Commenter la réponse de sheorogath
Ombitious_Developper 2333 Messages postés samedi 28 février 2004Date d'inscription 26 juillet 2013 Dernière intervention - 4 janv. 2007 à 00:30
0
Merci
Salut:

Je vais essayé ta solution, il y a une autre que se base sur l'utilisation de SDLJava, plus précisement la méthode SDL_MapRGB.

Comme la solution est là, je ne vais chercher loin.
Commenter la réponse de Ombitious_Developper
Twinuts 5279 Messages postés dimanche 4 mai 2003Date d'inscription 19 septembre 2018 Dernière intervention - 4 janv. 2007 à 09:30
0
Merci
Salut,

pour toute manipulation basic sur des images pas besoin de SDL limite tu peux aussi la faire avec JAI...

faire une manipulation d'image comme celle la avec SDL c'est comme prendre eclipse pour editer un fichier texte ;)

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
Commenter la réponse de Twinuts

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.