L'image de pyramide
maiFFF
Messages postés
18
Statut
Membre
-
maiFFF Messages postés 18 Statut Membre -
maiFFF Messages postés 18 Statut Membre -
salut
Je voudrais traiter une image avec java.
et savait comment travailler une image simple et noir
mais comment faire une image blanc à l'intérieur d'une image grise et limage grise à l'intérieur d'une image noir ?
Je voudrais traiter une image avec java.
et savait comment travailler une image simple et noir
mais comment faire une image blanc à l'intérieur d'une image grise et limage grise à l'intérieur d'une image noir ?
1 réponse
-
"Je voudrais traiter une image avec java."
Tu as les BufferedImage qui permettent de manipuler les images comme un tableau de pixels. Tu peux ensuite utiliser ImageIO pour lire ou enregistrer un fichier avec ton BufferedImage.
BufferedImage img = ImageIO.read(fileInput); ... ImagIO.write(img,"png",fileOutput);
"et savait comment travailler une image simple et noir
mais comment faire une image blanc à l'intérieur d'une image grise et limage grise à l'intérieur d'une image noir ?"
J'ai rien compris...-
-
Voici les étapes générales : tu créés un BufferedImage à la taille que tu veux, en définissant le type d'image que tu veux (par exemple TYPE_INT_RGB)
int width = 400, height = 300; BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Ensuite tu parcours les cases de ton tableau pour définir les couleurs de chaque pixel.
for (int x=0; x<width; x++) for (int y=0; y<height; y++) { Color color = ... int rgb = ... img.setRGB(x,y,rgb); }
Pour les couleurs, tu peux les obtenir de différentes manières.
Directement avec un nom de couleur prédéfini, il y en a 14, dont WHITE, LIGHT_GRAY, GRAY, DARK_GRAY, et BLACK qui devraient t'intéresser pour ton problème.
Color color = Color.RED; int rgb = color.getRGB();
Suivant l'espace de couleurs Red Green Blue
int red, green, blue; // entiers entre 0 et 255 Color color = new Color(red, green, blue); int rgb = color.getRGB();
Ou avec l'espace de couleurs Hue Saturation Brightness, qui pourrait aussi t'intéresser si tu veux faire un dégradé complet sur le contraste.
float hue, saturation, brightness; // réels entre 0 et 1 int rgb = Color.HSBtoRGB(hue, saturation, brightness);
Enfin, une fois que tes pixels sont tous remplis, tu les enregistre dans le format que tu veux.
ImageIO.write(img, "png", new File("C:/image.png")); ImageIO.write(img, "jpg", new File("C:/image.jpg")); ... -
-