Conversion Tableau de pixel en image
Résolu
tapharule
Messages postés
123
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J ai un tableau de pixel byte[] que j aimerai convertir en n importe quel format afin de le mettre dans un fichier ou de l afficher.
Je récupère l image d un peripherique , la seul information que j ai de ce tableau c est la
résolution (148 x 214 pixels with 4 grayscales)
j ai beaucoup cherche sur google met rien
Merci
Cordialement
J ai un tableau de pixel byte[] que j aimerai convertir en n importe quel format afin de le mettre dans un fichier ou de l afficher.
Je récupère l image d un peripherique , la seul information que j ai de ce tableau c est la
résolution (148 x 214 pixels with 4 grayscales)
j ai beaucoup cherche sur google met rien
Merci
Cordialement
A voir également:
- Image de tableau de conversion
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Image iso - Guide
1 réponse
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"));
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
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
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...
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 :
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