L'image de pyramide

maiFFF Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
maiFFF Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -
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 ?
A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
"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...
1
maiFFF Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
merci
et Je veux faire une image comme celui-ci
http://im41.gulfup.com/GYCMU.jpg
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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"));
...
0
maiFFF Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
merci beaucoup pour votre aide :)
0