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

Langage PHP Discussion :

[IMAGE] Transparence de l'antialiasing d'un PNG


Sujet :

Langage PHP

  1. #1
    lor
    lor est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 13
    Points : 11
    Points
    11
    Par défaut [IMAGE] Transparence de l'antialiasing d'un PNG
    Bonjour,

    J'ai fait un petit script utilisant les fonctions un peu basiques du php permettant d'importer un jpeg et de le réenregistrer en png.
    Sachant que dans la conversion le blanc doit devenir transparent.
    Jusque là... ce n'est pas compliqué !

    Sauf que j'aimerais qu'il n'y ait pas que la couleur ff ff ff de transparente, même toutes les couleurs que l'internaute voit comme du blanc.

    J'imagine qu'il faut parcourir l'image pixel par pixel. Et pour chaque pixel si celui-ci est blanc ou presque changer la valeur de sa couche alpha.
    Problème, je ne sais pas comment déterminer si le pixel est presque blanc.
    Prendre chaque composante alpha et dire que si les 3 sont au dessus d'une certaine valeur alors c'est du blanc ?

    Est-ce que l'un d'entre vous aurez déjà résolu un problème de ce genre ?

    Merci !

  2. #2
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juin 2007
    Messages : 89
    Points : 99
    Points
    99
    Par défaut
    Bonjour,

    pour te simplifier la vie tu peux toujours utiliser un outil externe que tu appel en ligne de commande. Par exemple ImageMagick.
    Un example de commande pris ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    convert image.png -matte -fill none -fuzz 1% -opaque white  result.png
    Ca devrait aussi marcher pour un fichier jpeg, mais je n'ai pas testé.

  3. #3
    Membre régulier Avatar de The Nux
    Profil pro
    Inscrit en
    Février 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 79
    Points : 88
    Points
    88
    Par défaut
    La résolution de ton problème dépend pas mal du genre d'images que tu comptes convertir, par ce que en règle générale tu peux pas savoir si un endroit clair de l'image est clair par ce que il est sensé être transparant ou si il est clair par ce que l'objet est clair. Si on prend une photo sur fond blanc par exemple, comment tu différencies le fond blanc d'un reflet ?

    Après il y a plusieurs méthodes pour résoudre le problème et je suis pas vraiment un expert, mais on peut imaginer de faire un traitement pixel par pixel et d'attribuer une couche alpha en fonction de la luminosité du pixel (une des solutions les plus simples) ou alors mettre en place un réseau de neurones pour reconnaitre le fond des reflets et/ou des endroits clairs, mais ça c'est déjà un peu plus dur (si tu as besoin de t'occuper cet été tu peux toujours faire ça ).

Discussions similaires

  1. [swing][image] transparence
    Par harold63 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 23/12/2015, 18h26
  2. [Image]Transparence des PNG
    Par Guybrush dans le forum 2D
    Réponses: 10
    Dernier message: 10/01/2008, 17h21
  3. [Image] transparence/ fondu
    Par laclac dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 13/07/2007, 11h58
  4. Fond d'une Image transparent
    Par master_thunder dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 09/06/2006, 09h31
  5. Réponses: 8
    Dernier message: 06/07/2004, 18h30

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