Remplir une grille [Fermé]

Signaler
-
 SpeedZealot -
Bonjour,
j'ai fais ce code qui dessine dans une grille, enfaite ce qui me manque c'est par exemple il prend 2 images de départ et il lit pour chaque pixel sa position et il remplie cette derniere par rapport aux valeurs de ses pixels des 2 images et j'en ai aucune idée pouvez vous m'aider ?
package STAGE;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.Raster;

import javax.swing.*;

import java.util.*;


public class Histogrammebilineaire extends JPanel
{



public static void Fenetre()
{

JFrame fenetre = new JFrame();
fenetre.setSize(273, 295);
fenetre.setTitle("Histogramme Bilinéaire");
JPanel panneau = new Histogrammebilineaire();
panneau.setBackground(Color.WHITE);
fenetre.add(panneau);
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenetre.setVisible(true);
}

@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
int larg = getWidth();
int haut = getHeight();


int dim = 8; //dimension d'une case de la grille

// La grille:
for(int i = 0; i < dim*33; i +=dim)
{
g.drawLine(i,0,i, haut); // Les lignes verticales de la grille
g.drawLine(0,i,larg, i); // Les lignes horizontales de la grille
// System.out.println(i);
}

for(int j = 0; j < dim*32; j +=dim)
{
// Remplir les cases:
for(int i = 0; i < dim*32; i +=dim)
{
g.setColor(Color.blue); // couleur de remplissage
g.fillRect(8, 248, 8, 8); // remplissage (fill)
g.setColor(Color.green); // couleur du panel
}
}


}

public static void main (String [] arg)
{
Fenetre();
}
}

1 réponse

Bonjour,

Essaye avec ca :
 Color col = g.getColor();
 g.setColor(Color.blue);   // couleur de remplissage
 for(int j = 0; j < dim*33; j +=dim)
         {	
         // Remplir les cases:
            for(int i = 0; i < dim*33; i +=dim)
            {
               g.fillRect(i, j, 8, 8); // remplissage (fill) d'un carré en position (i,j) de taille 8*8
            }
         }
 g.setColor(col);  // couleur du panel


Sauf que les lignes vont disparaître, donc il faut que tu les re-dessines après avoir remplis la grille

Après pour la lecture des pixels de tes images, tu peux utiliser la méthode
 java.awt.image.BufferedImage.getRGB(int x, int y)

Donc pour avoir ta nouvelle couleur, il te suffira de faire
int rgba = monBufferedImage.getRGB(i, j);
Color pixelColor = new Color(rgba, true);