IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

2D Java Discussion :

[Image]Transparence des PNG


Sujet :

2D Java

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Points : 102
    Points
    102
    Par défaut [Image]Transparence des PNG
    J'ai plusieurs image PNG à afficher dans une fenetre. Ces images possede une couleur de transparence. Lorsque j'affiche ces images avec la visionneuse Windows, j'ai bien la transparence en revanche dans ma fenetre Java, la transparence est ignoré, c'est la couleur de transparence qui est affichée.
    Que faut il faire pour que la couleur de transparence soit prise en compte ?

    (Remarque : mon image est chargé en faisant un appel à ImageIO.read et affichée en faisant un drawImage dans la méthode paintComponent d'un Jpanel)

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Ne pas utiliser MSPaint pour encoder tes images en PNG, l'encodeur de MSPaint gérant très mal la transparence dans le PNG. Par contre en utilisant de images produites Paint.NET ou the Gimp çà marche nickel

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    Le probleme c'est que je ne peux pas recréer les images + elles ont été créé avec photoshop (je ne pense pas qu'il gere mal la transparence)

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Essaies de les ouvrir avec un des logiciels que j'ai cité et de les réenregistrer

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    peux pas, elles sont fournies par l'utilisateur par un sélecteur de fichier.

    Ce que je voudrais savoir c'est comment faire pour que Java les affiche correctement...

  6. #6
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    demande à l'utilisateur de t'envoyer les fichiers incriminés et vérifie les sous tous les angles, car le décodeur java PNG est normalement conforme à la spec, et je n'ais jamais eu le moindre problème avec (bon sien sûr les bugs çà arrive)

  7. #7
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 854
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 854
    Points : 22 878
    Points
    22 878
    Billets dans le blog
    51
    Par défaut
    J'ai fait un petit essai avec un PNG 256 couleur incluant une couleur transparente, et ca passe sans probleme. Concernant les 24-bits, il ne faut pas stocker les informations de transparence dans une alpha channel mais dans le calque lui-meme.

    Note: j'utilise Paint Shop Pro, j'ignore comment cela se nomme (ni ou cela se trouve) dans Photoshop. Basiquement on a 2 options pour les PNG :
    - Load and save transparency to/from layer transparency
    - Load and save transparency to/from alpha channel

    Dans Paint Shop Pro, la premiere option est celle active par defaut et ne m'a jamais posee de probleme dans Java. Avec la seconde option, Java n'affiche plus la transparence (de meme que l'outils de visu des images dans Windows -alors que l'appercut de l'Explorateur lui affiche la transparence-).

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Points : 675
    Points
    675
    Par défaut
    Il y a peut être une autre piste à envisager également. Utilises tu une regle composite particuliere sur Graphics.
    Par Default, c'est AlphaComposite.SRC_OVER, mais si tu utilises AlphaComposite.SRC, tu peux avoir ce comportement.

  9. #9
    Membre régulier
    Inscrit en
    Juillet 2002
    Messages
    194
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 194
    Points : 102
    Points
    102
    Par défaut
    Citation Envoyé par Sanguko Voir le message
    Il y a peut être une autre piste à envisager également. Utilises tu une regle composite particuliere sur Graphics.
    Par Default, c'est AlphaComposite.SRC_OVER, mais si tu utilises AlphaComposite.SRC, tu peux avoir ce comportement.
    non, marche pas mieux... (plus plein d'effets d'affichage)

    En tout cas merci à tous pour votre aide. J'ai plus qu'a attendre que Java gère mieux la transparence des PNG...

  10. #10
    Membre confirmé Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Points : 552
    Points
    552
    Par défaut
    JAVA gère très bien la transparence, montre nous un bout de code d'affichage des images dans tes composants

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Points : 675
    Points
    675
    Par défaut
    Ca me parait bizarre tout de meme.
    Peux tu fournir :
    - la version de jvm que tu utilises
    - une des images qui posent probleme?

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/11/2008, 10h49
  2. Transparence des PNG sous IE6 et texte qui dépasse du conteneur
    Par shubakas dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 20/05/2008, 15h35
  3. Transparence des PNG/GIF en J2ME
    Par Leff69 dans le forum Java ME
    Réponses: 3
    Dernier message: 10/03/2008, 22h46
  4. [Compatibilité] transparence des png avec IE
    Par webrider dans le forum Webdesign & Ergonomie
    Réponses: 3
    Dernier message: 16/08/2006, 09h46
  5. [SWT] Problème avec la transparence des PNG
    Par sirjuh dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 02/08/2004, 08h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo