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

Delphi Discussion :

[Graphismes] Transparence parfaite


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Par défaut [Graphismes] Transparence parfaite
    Bonjour à tous!
    je developpe une application qui doit gérer des images en transparence, en gros, elle permet de charger simplement des images dans un TImage.
    J'utilise la propriété Transparence du composant TImage, mais selon l'image j'obtient des résultats peu satisfaisants.
    Admétons que mon image soit un fruit, et que la couleur transparente soit du bleu clair, et bien si je charge cette image il restera des pixels bleu clair autour de mon fruit. Le reste étant transparent. Le probleme peut parfois même aller jusqu'à produire une sorte de "nuage" de point sur la zone qui devrait être transparente.
    Je pense que ceci est une conséquence du traitement des images en amont, je suppose que Photoshop ou n'importe quel autre logiciel, modifie un peu les pixels "de fond" qui sont proches de l'objet pour rendre la transition entre deux couleurs plus naturelle.

    J'en vient à ma question, existe t'il selon vous un moyen de me débarasser de cette mauvaise transparence au niveau de delphi et non du traitement.
    Puis-je obtenir une transparence parfaite ou non?

    (J'ai songé utiliser une couleur transparente du genre (R:0,V:0,B:255) puis "Supprimer" tout pixel dont R et V valent 0. Mais j'ai peur que mes pixels récalcitrant soient de couleurs un peu plus variés, il suffirait que la couleur soit de (R:1,V:0,B:255) pour qu'il passe à travers les mailles...)

    J'ai essayé d'expliquer au mieux mon probleme, j'espere avoir réussi, merci d'avance de vous être penché sur la chose

  2. #2
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Travailles tu avec des images JPegs, si oui ne cherche plus, ton explicationest là :
    le format de compression jpeg est destructif, donc si tu dessine un cercle noir sur un fond bleu, que tu le passes en JPEG, les points censé être d'une certaine couleur bleu autour de ton carré noir, seront "compressés avec des points noirs de ton cercle.
    A la décompression, tu n'auras plus des points tout à fait bleus là où ils devaient l'être, et plus tout à fait noir là où il devaient l'être aussi. (apparition d'artéfacts donc)

    Ta seule solution est de travailler avec du Bitmap, ou un format de compression non-destructif (PNG ?)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 58
    Par défaut
    Si tu ne peux pas refaire tes images en bitmap, le plus simple et de mettre une couleur de fond identique a la couleur de fond originale de ton image...
    Ainsi ton flou se fera avec l'arriere plan et le tour est joué.

    A+

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 115
    Par défaut
    Non je ne travaille pas avec du Jpeg, mais justement sur du bitmap... :S
    Pour ce qui est d'utiliser la même couleur de fond je ne peux pas vraiment employer cette méthode car mes images se superposent parfois, et mon probleme d'invisibilité se voit dans ce cas.
    pour le moment je me permet le Bmp car je suis dans une phase de test et de developpement, mais cela risque de me poser des serieux problèmes de poids de fichier quand mon application va grandir...
    Il doit y avoir une solution simple... Peut être que je devrais m'interresser au PNG, je n'y connais pas grand chose, il se peut donc que ma solution soit la dedans
    Je vais faire quelques test, en atendant si vous pensez avoir de meilleures solutions je suis prenneur!

  5. #5
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    sinon, tu peux convertir les couleurs des pixels du RGB ver le système HSL qui code la couleur avec trois paramètres : teinte (Hue), saturation, luminosité (Light)).
    Puis tu fait en sorte que soit transparent tout ce qui peut avoir une teinte bleue (a<=teinte<=b), et hop...

  6. #6
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Par défaut
    Citation Envoyé par Aloneghost
    Non je ne travaille pas avec du Jpeg, mais justement sur du bitmap... :S
    Une question: Est-ce que le Bitmap est d'origine? Je veux dire: Est-ce que tu n'as pas juste fait une conversion depuis un jpeg? Si oui alors tu auras dans ton bmp toutes les imperfections du jpeg.
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  7. #7
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 69
    Par défaut
    Ton problème doit venir de l'atialiasing avec le fond de ton image et dans ce cas, y a pas de vrai solution sauf travailler en png avec un mask alpha et donc ne pas se servir de la propriété transparent du TImage.

    Bruno

Discussions similaires

  1. [Graphisme] Fond transparent
    Par dev7 dans le forum Imagerie
    Réponses: 8
    Dernier message: 30/05/2006, 17h57
  2. [VB6] [Graphisme] Arc de cercle dans un picturebox
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 04/11/2002, 18h55
  3. nombres parfaits...
    Par giminik dans le forum Mathématiques
    Réponses: 7
    Dernier message: 15/10/2002, 19h36
  4. [VB6] [Graphisme] Transfert d'image pixel par pixel
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 15/10/2002, 10h53
  5. [VB6][Graphisme] Zoom
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 10/10/2002, 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