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

 Java Discussion :

Affichage des pixels d'une image


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Mai 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 51
    Par défaut Affichage des pixels d'une image
    Bonjour,

    Quelqu'un saurait-il m'expliquer pourquoi mon IDE me souligne printPixelARGB(pixel); en rouge ?
    Est-ce qu'il y a d'autres fonctions similaires ?

    Voilà mon bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
                    int w = image.getWidth();
                    int h = image.getHeight();
                    System.out.println("width, height: " + w + ", " + h);
                    int[] pixels = new int[w*h];
                    for (int k = 0; k < h; k++) {
                        for (int j = 0; j < w; j++) {
                            System.out.println("x,y: " + j + ", " + k);
                            pixels = image.getRGB(0, 0, w, h, pixels, 0, w);
                            printPixelARGB(pixels);
                            System.out.println(pixels+"\t");
                            }
                        }
    Merci d'avance pour votre aide.

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Tu as oublié de récupérer le code de cette méthode là ou tu as copié le code....

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Parce que tu n'as pas la méthode printPixelARGB dans la classe ou ses parents?
    Quel est le message d'erreur que tu as?

    A+.

  4. #4
    Membre actif
    Inscrit en
    Mai 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 51
    Par défaut
    oui, absolument vrai vos deux remarques:
    en premier lieu: la méthode printPixelRGB n'est pas ni dans la classe ni de ses parents
    en 2ième lieu: je n'ai pas définie cette méthode
    bref, corrections faites:
    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
     
                    int w = image.getWidth();
                    int h = image.getHeight();
                    System.out.println("width, height: " + w + ", " + h);
     
     
                    for ( k = 0; k < w; k++) {
                        for (int j = 0; j < h; j++) {
                            int pixel = image.getRGB(k,j);
                            //System.out.println("x,y: " + k + ", " + j);
                            System.out.println("x,y: " + j + ", " + i);
                            printPixelARGB(pixel);
                            System.out.println("");
     
                            }
                        }
    et la méthode printPixelRGB:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void printPixelRGB(int pixel) {
     
                int red = (pixel >> 16) & 0xff;
                int green = (pixel >> 8) & 0xff;
                int blue = (pixel) & 0xff;
                int all = red+blue+green;
                System.out.println("rgb: " + all);
                 }
    une question:
    j'ai modifié la méthode printPixelRGB de telle façon que j'obtiens la valeur totale de chaque pixel comme vous le voyez int all = red+blue+green;
    lorsque je vais faire le processus inverse, càd, à partir de cette valeur "all" j'obtiens le pixel d'origine
    est-ce que ça marchera ??
    veuillez m'aider
    j'espère avoir bien expliquer

  5. #5
    Membre actif
    Inscrit en
    Mai 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 51
    Par défaut
    salut,
    j'ai effectué d'autres changement (mais j’attends quand même vos remarques et une réponse pour la question précédente)
    alors:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public int printPixelRGB(int pixel) {
     
                int red = (pixel >> 16) & 0xff;
                int green = (pixel >> 8) & 0xff;
                int blue = (pixel) & 0xff;
                int all = red+blue+green;
                //System.out.println("rgb: " + all);
                return all;
                 }
    +
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for ( k = 0; k < w; k++) {
                        for (int j = 0; j < h; j++) {
                            pixel = image.getRGB(k,j);
                            System.out.println("x,y: " + j + ", " + i);
                            rgbValue = printPixelRGB(pixel);
                            System.out.println("la valeur RGB de chaque pixel est: "+rgbValue);
     
                            }
                        }

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par b_imen Voir le message
    une question:
    j'ai modifié la méthode printPixelRGB de telle façon que j'obtiens la valeur totale de chaque pixel comme vous le voyez int all = red+blue+green;
    lorsque je vais faire le processus inverse, càd, à partir de cette valeur "all" j'obtiens le pixel d'origine
    est-ce que ça marchera ??
    Je ne sais pas trop ce que tu appelles "la valeur totale" d'un pixel, mais en tout cas il n'y a pas de processus inverse. Tu ne peux pas partir de la somme des canaux rouge-vert-bleu et réobtenir la valeur individuelle de chaque pixel.

    Exemple : supposons que nous partions de la couleur #070605
    Sa somme "all" vaudra 7 + 6 + 5 = 18
    Comment faire la différence avec la couleur #060507 dont la somme vaut aussi 18 ?

    Donc non, ça ne marchera pas.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre actif
    Inscrit en
    Mai 2010
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 51
    Par défaut
    merci pour votre réponse.
    c'est évident ce que vous dites.

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/03/2007, 15h39
  2. [FLASH 8] BitmapData -> changer des pixels d'une image en alpha
    Par Lorenzo77 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 15/12/2006, 17h13
  3. [c++.Net] Parcours des pixels d'une image
    Par CaptainChoc dans le forum Framework .NET
    Réponses: 4
    Dernier message: 27/11/2006, 16h05
  4. diffusion des pixels d'une image
    Par hagui dans le forum Traitement d'images
    Réponses: 11
    Dernier message: 11/05/2006, 18h31
  5. [MFC]déplacement des pixels d'une image
    Par hagui dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2006, 16h51

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