| Qui est en ligne ? |
| Il y a : 13 utilisateurs en ligne, consultez le détail |
Forum » Serveur, Réseaux et Programmation » Enregistrer dans un dossier spécifique en Java |
Forum modéré par : jblecanard |
| Même auteur |
|
Score ( voter ) : |
|
| Page : [1] |
| Auteur | Message |
|---|---|
|
|
#0 Message posté le : 22-06-2007 à 16:18:52 |
Scarabée Forum : Inscrit Association : Arrivé(e) le : 13-07-2005 Nombre de messages : 206 |
Le titre veut tout dire: Je souhaite enregistrer une image sur disque dur (çà je sais faire) mais dans un dossier précis ... çà je sais pas faire ! Voici le code public void enregistrerPPM(String s) throws IOException{
FileWriter fw = new FileWriter(s + ".ppm");
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter f = new PrintWriter(bw);
int nb = 0;
f.println("P3");
f.println("# Test");
f.println("" + largeur + " " + hauteur);
f.println("" + profondeur);
for (int i=0; i<hauteur; i++){
for (int j=0; j<largeur; j++){
s = "" + pixel[i][j].getRed() + " ";
s = s + pixel[i][j].getGreen() + " ";
s = s + pixel[i][j].getBlue() + " ";
if (nb + s.length() > 70){
f.println();
nb=0;
}
f.print(s);
nb = nb + s.length();
}
}
f.println();
f.close();
}Je ne vois pas où et comment spécifier le dossier de destination. L'image s'enregistre toujours dans le dossier à partir duquel le prog est lancé. Merci de vos suggestions ! |
|
|
#1 Message posté le : 22-06-2007 à 16:25:08 |
Hobbit Forum : Modérateur Association : Président Arrivé(e) le : 09-04-2006 Nombre de messages : 1999 |
Il faut que tu spécifies le chemin à ton FileWriter, soit un chemin relatif, soit un chemin absolu.
FileWriter fw = new FileWriter("/home/toto/foo/bar/pouet/" + s + ".ppm"); --Message édité par Azollyx le 22-06-2007 à 16:25:18-- ------------------------------------- Cherche distributeur manuel/automatique de câlins femelle pour mise en réseau rapprochée. Nota : je préfèrerais un modèle bien documenté. |
|
|
#2 Message posté le : 22-06-2007 à 16:39:06 |
Scarabée Forum : Inscrit Association : Arrivé(e) le : 13-07-2005 Nombre de messages : 206 |
Bah j'y ai pensé de suite mais çà veut pas ... J'avais peut être fait une faute de frappe je reteste de suite ! Merci ! |
|
|
#3 Message posté le : 22-06-2007 à 16:45:24 |
Scarabée Forum : Inscrit Association : Arrivé(e) le : 13-07-2005 Nombre de messages : 206 |
Bon ben j'avais du faire une faute de frappe toute conne quoi ... Merci quand même d'avoir répondu si vite ! |
|
|
#4 Message posté le : 22-06-2007 à 16:47:21 |
Scarabée Forum : Inscrit Association : Arrivé(e) le : 13-07-2005 Nombre de messages : 206 |
Au fait tu saurais pas comment calculer l'histogramme de cette image en niveaux de gris par hasard ? .... |
|
|
#5 Message posté le : 22-06-2007 à 22:01:06 |
Hobbit Forum : Modérateur Association : Président Arrivé(e) le : 09-04-2006 Nombre de messages : 1999 |
Euh... c'est quoi l'histogramme en niveaux de gris ? ------------------------------------- Cherche distributeur manuel/automatique de câlins femelle pour mise en réseau rapprochée. Nota : je préfèrerais un modèle bien documenté. |
|
|
#6 Message posté le : 22-06-2007 à 22:59:25 |
Hobbit Forum : Inscrit Association : Arrivé(e) le : 17-01-2004 Nombre de messages : 1703 |
cela veut dire que ton image est encodée sur 8 bits et non pas 24 ------------------------------------- Linux user #377793 Petition Free IPv6 # 18366 |
|
|
#7 Message posté le : 23-06-2007 à 10:34:02 |
Hobbit Forum : Modérateur Association : Président Arrivé(e) le : 09-04-2006 Nombre de messages : 1999 |
En gros c'est dur noir-et-blanc. Pour ça, tu peux faire la moyenne de chaque composante pour chaque pixel (r = g = b = (r+g+b) / 3). Tu auras du noir-et-blanc. Cependant, il faut en théorie rajouter des coefficients que je ne connais pas. Essaye de voir si tu ne les trouves pas sur le net. édit : sinon, tu peux aussi regarder dans la javadoc à java.awt.image et javax.imageio. édit 2 : je viens te voir que tu utilisais des String pour manipuler tes pixels. Java peut t'offrir beaucoup mieux : des objets d'images ou des flux. Regarde un peu la FAQ images de développez.net. --Message édité par Azollyx le 23-06-2007 à 10:39:12-- ------------------------------------- Cherche distributeur manuel/automatique de câlins femelle pour mise en réseau rapprochée. Nota : je préfèrerais un modèle bien documenté. |
|
|
#8 Message posté le : 23-06-2007 à 11:56:00 |
Scarabée Forum : Inscrit Association : Arrivé(e) le : 13-07-2005 Nombre de messages : 206 |
non non je ne dois pas utiliser ce que JAVA me propose ... ce serait trop simple voyons ! non je suis en formation et je dois créer moi-même les méthodes qui vont bien (même si elles sont loin d'être parfaites) pour que mon programme fasse ce que je veux ! Pour passer l'image en noir et blanc je sais faire. En fait voilà ce que je dois faire: "Calcul de l'histogramme en niveaux de gris et sauvegarde sous la forme d'un fichier contenant 256 valeurs successives séparées par un espace et correspondant à la probabilité d'apparition d'un niveau de gris donné (la première valeur correspond à la probabilité d'apparition du niveau de gris 0 et la 255ème valeur correspond à la probabilité d'apparition du niveau de gris 255)" |
|
|
#9 Message posté le : 23-06-2007 à 12:10:25 |
Elfe Forum : Modérateur Association : Membre fondateur Arrivé(e) le : 08-01-2005 Nombre de messages : 3998 |
Ha bah là il va falloir faire le calcul à la main, et ce n'est guère compliqué : pour un niveau de gris donné, il suffit de compter le nombre de pixel qui sont affichés avec ce niveau et de diviser par le nombre total de pixels... ------------------------------------- C'est une situation bien inconfortable que d'être assez sensible à la bêtise pour en souffrir et trop intelligent pour s'en indigner. - Gustave Thibon - |
|
|
#10 Message posté le : 23-06-2007 à 12:40:27 |
Scarabée Forum : Inscrit Association : Arrivé(e) le : 13-07-2005 Nombre de messages : 206 |
Comment çà compter à la main ? C'est sensé être une méthode d'un programme. Bon pour compter le nombre de pixels et l'enregistrer dans une variable c'est pas compliqué. Mais comment enregistrer le nombre de pixels qui contiennent un niveau de gris donné ? |
|
|
#11 Message posté le : 23-06-2007 à 12:54:21 |
Hobbit Forum : Modérateur Association : Président Arrivé(e) le : 09-04-2006 Nombre de messages : 1999 |
Et bien tu rajoutes un test : si le pixel est un niveau de gris (cad que ses composantes RGB sont du même ordre), tu le comptes, sinon non. Tu fais ça pour chaque niveau de gris. ^^ Le mieux serait IMHO de faire un tableau dont l'incide et la taux du niveau de gris. ------------------------------------- Cherche distributeur manuel/automatique de câlins femelle pour mise en réseau rapprochée. Nota : je préfèrerais un modèle bien documenté. |
|
|
#12 Message posté le : 23-06-2007 à 14:17:15 |
Scarabée Forum : Inscrit Association : Arrivé(e) le : 13-07-2005 Nombre de messages : 206 |
Mon code vérifie d'abord si l'image est en niveau de gris. Un niveau de gris c'est bien (pour une image en niveaux de gris hein): la composante rouge + la composante verte + la composante bleu C'et bien çà ? J'avoue que je m'embrouille un peu même si pour vous le niveau ne semble pas élevé .... je vous file le code ce sera peut-être mieux : public void Histogramme()
{
histImage = true;
int [] histo = new int [256];
int indice;
int nbPix = hauteur * largeur;
System.out.println("Nombre de pixels de l'image : " + nbPix);
for (int i=0; i<largeur; i++)
{
for (int j=0; j<hauteur; j++)
{
Couleur couleur = getPixel(i,j);
indice = couleur.getRed() + couleur.getGreen() + couleur.getBlue();
histo[indice] ++;
}
}
for(int i=0; i<histo.length; i++)
{
System.out.print(histo[i] + " ");
}
}Qu'en pensez-vous ? |
|
|
#13 Message posté le : 23-06-2007 à 15:34:10 |
Hobbit Forum : Modérateur Association : Président Arrivé(e) le : 09-04-2006 Nombre de messages : 1999 |
Non le nv de gris, c'est la moyenne des trois : (R + V + B) / 3 mais comme R = V = B, c'est en fait R ou V ou B d'où indice = R. Après, si tu fais un histogramme, je peux t'encourager à normaliser ta mesure (de -128 à 127 par exemple) / à comparer les densités (de 0. à 1.). PS : tu fais ça dans quel cadre ? le choix du Java était imposé ? --Message édité par Azollyx le 23-06-2007 à 15:34:45-- ------------------------------------- Cherche distributeur manuel/automatique de câlins femelle pour mise en réseau rapprochée. Nota : je préfèrerais un modèle bien documenté. |
| Page : [1] |
Forum » Serveur, Réseaux et Programmation » Enregistrer dans un dossier spécifique en Java |
Forum modéré par : jblecanard |
| Même auteur |
|
Score ( voter ) : |
|
- Petit scarabée : 0 pastille, moins de 100 messages
- Scarabée : 0 pastille, plus de 100 messages
- Hobbit : 1 pastille, plus de 1000 messages
- Naboo : 2 pastilles, plus de 2000 messages
- Elfe : 3 pastilles, plus de 3000 messages
- Jedi : 4 pastilles, plus de 4000 messages
- Maître Jedi : 5 pastilles, plus de 5000 messages