et voici la fonction rgb
public int[]rgb(int[]Entre,int w,int h){
int[]Sortie=Entre;
for(int i=0;i<Entre.length;i++){
int pix=Entre[i];
int red = (pix >> 16) & 0xff;
int green = (pix >> 8) & 0xff;
int blue = (pix ) & 0xff;
int alpha = (pix >> 24) & 0xff;
//int a = (pix >> 0) & 0xff;
int gris =(red+green+blue)/3;
int rgb = -((alpha<<24)+(gris<<16)+(gris<<8)+gris);
Sortie[i]=rgb; }
J'aurais simplement utilisé java.awt.Canvas, je ne vois pas l'intérêt de passer par JPanel. Pourquoi ne pas ajouter le composant au content pane au lieu de le remplacer? Il nous serait plus facile de vous aider avec le code source complet.