Conversion Tableau de pixel en image
Résolu/Fermé
tapharule
Messages postés
123
Date d'inscription
mercredi 24 septembre 2008
Statut
Membre
Dernière intervention
24 octobre 2015
-
8 avril 2013 à 03:06
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 9 avril 2013 à 06:01
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 9 avril 2013 à 06:01
A voir également:
- Image de tableau de conversion
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Image iso - Guide
- Tableau word - Guide
- Image de profil - Guide
1 réponse
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
8 avril 2013 à 06:01
8 avril 2013 à 06:01
Tu as des méthodes dans ImageIO qui permettent de manipuler des fichiers image, en particulier write(RenderedImage,String,File), où String est le format de l'image.
Pour le RenderedImage tu peux utiliser un BufferedImage. Exemple :
Pour le RenderedImage tu peux utiliser un BufferedImage. Exemple :
BufferedImage img = new BufferedImage(148,214,BufferedImage.TYPE_INT_RGB); for (int i=0; i<img.getWidth(); i++) for (int j=0; j<img.getHeight(); j++) { Color clr = ???; // à remplir avec ton tableau de byte img.setRGB(x,y, clr.getRGB()); } ImageIO.write(img,"png",new File("C:/image.png"));
8 avril 2013 à 18:19
byte[] monTableauDeByte = fonctionRetournantTableauPixel();
java n accepte pas le Color clr = monTableauDeByte;
ni Color clr = monTableauDeByte[i];
ni Color clr = monTableauDeByte[j];
Merci de m aider
Cordialement
8 avril 2013 à 18:47
BufferedImage img = new BufferedImage(148,214,BufferedImage.TYPE_INT_RGB);
int k = 0;
for (int i=0; i<img.getWidth(); i++)
for (int j=0; j<img.getHeight(); j++)
{
Color clr = new Color(abyPhotoU[k]); // à remplir avec ton tableau de byte
k++;
img.setRGB(i , j, clr.getRGB());
}
ImageIO.write(img,"bmp",new File("./image.bmp"));
sa maffiche une image bizare mais sa a l air de marche
je te tien au courent
8 avril 2013 à 18:48
Moi je ne sais pas comment tu as définis ton tableau de byte pour savoir à quoi il correspond, mais si tu mets toujours [i] (ou toujours [j]) ça veut dire que tu aurais toujours la même couleur pour toutes les lignes (ou toutes les colonnes)... Je doute que ce soit ce que tu veux.
De plus il faut dire à Java à quelle couleur correspond un byte de telle ou telle valeur. La classe Color dispose de plusieurs constructeurs et méthodes pour créer des couleurs de différentes manière, il faut donc en choisir une qui permettrait de construire la bonne couleur que celle que tu représentes avec tes byte...
8 avril 2013 à 18:57
Essayes plutôt le constructeur Color(int r, int g, int b) Ou la méthode Color.getHSBColor(float h, float s, float b); mais je ne sais plus trop comment la régler pour les teintes de gris, je crois que c'est l'un des deux :
8 avril 2013 à 22:36
Comme info sur la methode qui me retourne l image en byte j ai que sa comme info
the buffer receives the pixels of the
fingerprint image
in Low resolution (148 x 214 pixels with 4 grayscales) in Full resolution (300 x 428 pixels with 256 grayscales)
Je n ai aucune idée de l agencement des pixels
quand j utilise ton
new Color(abyPhotoU[k],abyPhotoU[k],abyPhotoU[k]) j obtient l erreur la
Erreur: Color parameter outside of expected range: Red Green Blue
pour la seconde j ai pas compris comment l utiliser