From: NATHALIE SAUVAGER <nsauvage@ryu.univ-mlv.fr>
To: java@u-strasbg.fr
Subject: Affichage Image PGM
Date sent: Thu, 24 Feb 2000 16:00:28 +0100
Send reply to: java@u-strasbg.fr
Bonjour à tous,
Je suis nouvelle sur cette liste et débutante en java.
Je travaille actuellement sur des images PGM binaires en 255 niveaux de
gris. Comme je dois l'utiliser dans un bon nombre d'algoithme de
compression j'utilise un tableau de byte comme struture de données de
l'image. Ce tableau contient uniquement les données en byte de 0 à 255. Je
voudrais pouvoir afficher l'image. J'ai découvert que la classe
BufferedImage permet de construire un objet image qui peut donc être
affichée dans un Canvas. J'ai choisi de construire la BufferedImage ainsi
: img = new BufferedImage(nbRow,
nbLine,
BufferedImage.TYPE_BYTE_GRAY);
Puis, j'utilise la methode setRGB(x, y, couleur) pour remplir les donnees.
Ca ne marche pas et j'ai decouvert sur les tutorials sur le net que la
couleur etait en hexadecimal. Et la je ne voit pas comment faire pour
obtenir ma couleur en hexa, j'arrive a recuperer des int de [0-255] et
c'est tout. Si vous avez une idee pour convertir ou alors une meilleur
facon d'initialiser la BufferredImage, ou alors si il y a une meilleur
classe a utiliser, votre aide est le bienvenu :-).
Merci !
Nathalie
To: <java@u-strasbg.fr>
Subject: Re: Affichage Image PGM
Date sent: Thu, 24 Feb 2000 15:33:33 +0100
From: Mederic Morel <mederic@jbusiness.org>
Send reply to: java@u-strasbg.fr
Salut,
> Je suis nouvelle sur cette liste et débutante en java.
> Je travaille actuellement sur des images PGM binaires en 255 niveaux de
> gris.
L'API JAI [Java Advanced Imaging] sait manipuler les fichiers au format
PNM et dérivés, donc aussi le format PGM.
Cette API est dispo gratuitement sur le site de SUN avec un excellent
tutorial.
A+
From: Erik Mazoyer <erik.mazoyer@hyperoffice.fr>
To: "'java@u-strasbg.fr'" <java@u-strasbg.fr>
Subject: RE: Affichage Image PGM
Date sent: Thu, 24 Feb 2000 16:19:46 +0100
Send reply to: java@u-strasbg.fr
En fait travailler en 256 niveaux de gris est équivalent à travailler en
millions de couleurs. Je m'explique : Une couleur (en millions de couleur)
est codée sur 256 niveaux de rouge, 256 niveaux de vert et 256 niveaux de
bleu. Or un niveau de gris pur est la même intensité de rouge, vert et
bleu. Ce qui limite bien a 256 niveaux de gris.
Par exemple un niveau 62 de gris est équivalent à
(rouge=62,vert=62,bleu=62).
Pour transformer ton gris en couleur Java, tu peux te construire un
tableau de taille 256
int i;
int tabColor[256]
for(i=0;i<256;i++) {
tabColor[i] = (new Color(i,i,i)).getRGB();
}
Tu as maintenant un tableau de correspondance (Intensité de gris => RGB)
tu peux écrire
setRGB(x,y,tabColor[intensiteGris]);
> -----Message d'origine-----
> De: NATHALIE SAUVAGER [SMTP:nsauvage@ryu.univ-mlv.fr]
> Date: jeudi 24 février 2000 16:00
> À: java@u-strasbg.fr
> Objet: Affichage Image PGM
>
> Bonjour à tous,
> Je suis nouvelle sur cette liste et débutante en java.
> Je travaille actuellement sur des images PGM binaires en 255 niveaux de
> gris. Comme je dois l'utiliser dans un bon nombre d'algoithme de
> compression j'utilise un tableau de byte comme struture de données de
> l'image. Ce tableau contient uniquement les données en byte de 0 à 255.
> Je voudrais pouvoir afficher l'image. J'ai découvert que la classe
> BufferedImage permet de construire un objet image qui peut donc être
> affichée dans un Canvas. J'ai choisi de construire la BufferedImage
> ainsi : img = new BufferedImage(nbRow, nbLine,
> BufferedImage.TYPE_BYTE_GRAY); Puis, j'utilise la methode setRGB(x,
> y, couleur) pour remplir les donnees. Ca ne marche pas et j'ai decouvert
> sur les tutorials sur le net que la couleur etait en hexadecimal. Et la
> je ne voit pas comment faire pour obtenir ma couleur en hexa, j'arrive a
> recuperer des int de [0-255] et c'est tout. Si vous avez une idee pour
> convertir ou alors une meilleur facon d'initialiser la BufferredImage,
> ou alors si il y a une meilleur classe a utiliser, votre aide est le
> bienvenu :-).
>
> Merci !
> Nathalie
From: NATHALIE SAUVAGER <nsauvage@ryu.univ-mlv.fr>
To: java@u-strasbg.fr
Subject: RE: Affichage Image PGM
Date sent: Thu, 24 Feb 2000 17:23:41 +0100
Send reply to: java@u-strasbg.fr
Merci de ton aide bien précieuse, ca marche !
nathalie
Le jeu, 24 fév 2000, Erik Mazoyer a écrit :
> En fait travailler en 256 niveaux de gris est équivalent à travailler en
> millions de couleurs. Je m'explique : Une couleur (en millions de
> couleur) est codée sur 256 niveaux de rouge, 256 niveaux de vert et 256
> niveaux de bleu. Or un niveau de gris pur est la même intensité de
> rouge, vert et bleu. Ce qui limite bien a 256 niveaux de gris.
>
> Par exemple un niveau 62 de gris est équivalent à
> (rouge=62,vert=62,bleu=62).
>
> Pour transformer ton gris en couleur Java, tu peux te construire un
> tableau de taille 256
>
> int i;
> int tabColor[256]
> for(i=0;i<256;i++) {
> tabColor[i] = (new Color(i,i,i)).getRGB();
> }
>
>
> Tu as maintenant un tableau de correspondance (Intensité de gris => RGB)
>
> tu peux écrire
> setRGB(x,y,tabColor[intensiteGris]);
>
>
> > -----Message d'origine-----
> > De: NATHALIE SAUVAGER [SMTP:nsauvage@ryu.univ-mlv.fr]
> > Date: jeudi 24 février 2000 16:00
> > À: java@u-strasbg.fr
> > Objet: Affichage Image PGM
> >
> > Bonjour à tous,
> > Je suis nouvelle sur cette liste et débutante en java.
> > Je travaille actuellement sur des images PGM binaires en 255 niveaux
> > de gris. Comme je dois l'utiliser dans un bon nombre d'algoithme de
> > compression j'utilise un tableau de byte comme struture de données de
> > l'image. Ce tableau contient uniquement les données en byte de 0 à
> > 255. Je voudrais pouvoir afficher l'image. J'ai découvert que la
> > classe BufferedImage permet de construire un objet image qui peut donc
> > être affichée dans un Canvas. J'ai choisi de construire la
> > BufferedImage ainsi : img = new BufferedImage(nbRow, nbLine,
> > BufferedImage.TYPE_BYTE_GRAY); Puis, j'utilise la methode setRGB(x,
> > y, couleur) pour remplir les donnees. Ca ne marche pas et j'ai
> > decouvert sur les tutorials sur le net que la couleur etait en
> > hexadecimal. Et la je ne voit pas comment faire pour obtenir ma
> > couleur en hexa, j'arrive a recuperer des int de [0-255] et c'est
> > tout. Si vous avez une idee pour convertir ou alors une meilleur facon
> > d'initialiser la BufferredImage, ou alors si il y a une meilleur
> > classe a utiliser, votre aide est le bienvenu :-).
> >
> > Merci !
> > Nathalie