Forum Clubic

[Java]Degradé de couleur

Voila en fait j’ai un plateau de jeu sur lequel j’aimerai mettre en fond un degradé de couleur bleu (clair sur les bords et fonce au milieu) un peu comme la mer.

Quelqu’un s’y connait un peu ?
Merci d’avance

Ton problème est de générer une image avec un dégradé de bleu?
Il suffit de travailler directement avec les pixels

Regarde du côté de PixelGrabber

ok je regarde ca
mais il ne s’agit pas d’implementer une image en fond

ah?

non juste colorier le fond mais en faisant un dégradé

avec adobe photoshop il y a moyen !

(non mais en Java, photoshop il n’existe pas…)

Sinon ton degré doit être du genre :

[cpp]for ( int i = 0; i < height; i++ ) {
int color = (((int) ((float)(0x000000FF * ((float)i/(float)height)))) & 0x000000FF) | 0xFF000000;
for ( int j = 0; i < width; j++ )
setPixel(i,j, color);
}
[/cpp]

et avec sa il fait quoi il le copie coller dans les codes de sa page ?

Sa page?

Tu ne confondrais pas Java et Javascript?

(…)

Puis en javascript aussi tu peux le faire, mais bon…

Et pour un dégradé bleu -> blanc
[cpp]for ( int i = 0; i < height; i++ ) {
int value = (((int) ((float)(0xFF * ((float)i/(float)height)))) & 0x000000FF);
int color = 0xFF0000FF;
color += value << 8; // Ajout du vert
color += value << 16; // Ajout du rouge

for ( int j = 0; i < width; j++ )
setPixel(i,j, color);
}[/cpp]

Je pense que tu as strictement tout pour faire ton dégradé maintenant…

rah le boulet :o et en plus tu m’as suivi [myself] : s’il utilise mon code, il va avoir une boucle infini :o c’est pas i < width, mais j < width.

Ce ne sera pas ma première connerie dans ce post (Je ne pense pas qu’un PixelGrabber soit vraiment utile ici, y’a rien à récupérer)…

Pour m’excuser, une solution un peu plus complète -toujours partiellement repompée sur le code de Sans-Nom :wink: -> component, c’est n’importe quoi qui hérite de Component

int[] buffer = new int[width * height];

for (int i = 0 ; i < height ; i++) {
   int value = (int) (255. * ((double)i/(double)height));
   int color = 0xFF0000FF;
   color += value << 8; // Ajout du vert
   color += value << 16; // Ajout du rouge

   for (int j = 0; j < width; j++) {
       buffer[j + i * width] = color;
   }
}

Image image = component.createImage(new MemoryImageSource(width, height, buffer, 0, width));
        
MediaTracker mediaTracker = new MediaTracker(component);
        
mediaTracker.addImage(image, 0);
try {
   mediaTracker.waitForID(0);
}
catch(Exception e) {
   e.printStackTrace();
}

t t t :wink: