CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[JAVA] Transparence image Help!

savatage83
savatage83
Niveau 9
29 juin 2010 à 00:14:31

Bonsoir!

Je suis en train de faire un projet en java...
(je code sous Eclipse)
Dans ce projet, j'ai une IHM avec 3 Canvas.

Dans un des canvas, il y a une image de fond (la mer) et une autre image représentant un hélicoptere qui doit se déplacer et se poser sur un bateau.

Bon en gros mon problème c'est que le fond de l'image de l'hélicoptere est noire et du coup quand je l'affichche ça me donne un carré noir avec l'hélico dedans...

J'aimerais savoir s'il existe une méthode pour rendre transparent ce fond noir ou n'importe quelle autre couleur!!

Je cherche depuis un moment mais y a rien de vraiment concret...

public void paint(Graphics g)
{

Image lDroneAzymutIMG;
lDroneAzymutIMG = getToolkit().getImage("images/droneazymut.jpg");
lDrone = new CDroneAzymut(CIhm.lDrone, CIhm.lBP);

g.drawImage(img, 0, 0, this);
g.drawImage(lDroneAzymutIMG, lDrone.getX(),lDrone.getY(), this);

}

Merci pour votre aide !

acemicka
acemicka
Niveau 9
29 juin 2010 à 22:24:31

pourquoi tu met pas le fond de ton hélicopeter en transparent directement sur l image??

acemicka
acemicka
Niveau 9
29 juin 2010 à 22:26:49

ha pardonc pas vue. en JCanvas je sais pas du tout :)
dsl

savatage83
savatage83
Niveau 9
01 juillet 2010 à 20:52:49

j'ai mis un fond de la même couleur que le fond, mais quand ça arrive sur le bateau c'est moche...
Je dois rendre le projet demain, tant pis ça sera moche... :snif2:

Bunyan
Bunyan
Niveau 17
01 juillet 2010 à 21:04:00

Pour information, le format jpeg/jpg ne permet pas de transparence quelconque.

savatage83
savatage83
Niveau 9
01 juillet 2010 à 21:19:42

je sais, mais en C++ la bibliothèque SDL permet de "filtrer" une couleur qui de vient transparente, meme sur un jpg.
J'ai juste pas trouvé l'équivalent Java...

godrik
godrik
Niveau 30
01 juillet 2010 à 21:53:41

avant que l'on ait des formats de fichiers qui ont un canal alpha, on utilisait une couleur ou une plage de couleur particuliere (appelle colorkey) qui etait considere comme transparente.

je me rappelle qu'il y a une fonction blit quelque part qui prends un champ colorkey en parametre. mais c'est des souvenir d'il y a 5 ans donc je ne me rappelle pas bien. et je ne suis meme pas sur que ce n'etait pas du midp que je faisait.

Tu utilise quoi comme couche de rendu graphique ? awt ?

chris_27
chris_27
Niveau 10
02 juillet 2010 à 20:10:36

Bon, il est grand temps d'en finir avec ce thread.

Tiré d'un vieux projet datant de ma L3 :

/* couleur de transparence */
public static long transparent = 256*256*255 + 246;
:d) on définit le rose bonbon comme étant la colorkey dont parle godrik.

public static SDLSurface chargerImage(String s)
{
SDLSurface spriteSurface;
try {
spriteSurface = SDLImage.load(s);

spriteSurface.setColorKey(SDLVideo.SDL_SRCCOLORKEY
, transparent);
spriteSurface = spriteSurface.displayFormat();

return spriteSurface;
} catch (SDLException e) {
System.out.println(e.getMessage());
}
return null;
}
:d) fonction pour loader une image à partir d'un nom de fichier.

Après, il suffit de colorier en rose bon (255-0-246) les pixels qu'on veut avoir en transparent et ça roule.

PS : à l'épqoue, on s'était mit en tête d'utiliser sdljava, donc si tu utilises autre chose, adapte.

godrik
godrik
Niveau 30
03 juillet 2010 à 00:29:25

Merci Chris pour cet extrait de code.

Finalement un lien vers la lib sdl en java:

http://sdljava.sourceforge.net/

savatage83
savatage83
Niveau 9
03 juillet 2010 à 13:28:25

Merci beaucoup !! malheureusement trop tard pour la présentation, mais je le ferai pour ma culture perso.

Je ne savais pas que la SDL était sous java aussi !! grrrr !!! j'ai cherché dans le mauvais sens un équivalent!!!

Encore une fois merci !! je vous tiendrais au courant si j'y arrvie, mais là...week end, plage !!! @++

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment