Transparence

Signaler
Messages postés
15
Date d'inscription
vendredi 17 septembre 2004
Statut
Membre
Dernière intervention
31 octobre 2004
-
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
-
Bonjour,

Voici mon problème. Je met une image dans une form sur VB6 et je voudrais que les parties de cette images qui sont noires soit transparentes. Comment faire???
Merci beaucoup de votre aide!

----------julesb007---------- ;)

6 réponses

Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
16
Il existe une Dll qui le permet, dans l'exemple ci-dessous (merci à DarkSidius) il te faut 2 picturebox, l'un contient l'original, l'autre rien, les 2 sont en ScaleMode=Pixel.
Essaie de remplacer 'VbWhite' par 'VbBlack'

Private Declare Function TransparentBlt Lib "msimg32.dll" ( _
    ByVal hdc As Long, _
    ByVal x As Long, _
    ByVal y As Long, _
    ByVal nWidth As Long, _
    ByVal nHeight As Long, _
    ByVal hSrcDC As Long, _
    ByVal xSrc As Long, _
    ByVal ySrc As Long, _
    ByVal nSrcWidth As Long, _
    ByVal nSrcHeight As Long, _
    ByVal crTransparent As Long) As Boolean
    
Private Sub Command1_Click()
    Call Picture2.Cls
    Call TransparentBlt(Picture2.hdc, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, vbWhite)
End Sub


Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
1
Tu n'a pas de logiciel de retouche photo style photoshop, the gimp (gratos)
avec ça tu ouvre ton image, tu supprime les parties que tu veux transparentes et tu enregistre en format .gif (avec l'option transparence) et comme ça tout les pixels que tu veux transparents le seront.
@ +
MadMatt
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
16
MadM@att, j'ai essayé le Gif transparent avec VB.Net mais ça marche pas toujours.

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
1
Ah jsavais pas que ça marchait pas toujours en VB.Net, c'est bon a savoir.
Par contre Julesb007 a précisé que c'était pour du VB6, faudrait essayer voir si ça marche.
@ +
MadMatt
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
16
Oui c'est vrai, dans ce cas là il faudrais voir a adapté la méthode suivante qui consiste à rendre le fond d'une picture transparent.

Private Declare Function TransparentBlt Lib "msimg32.dll" ( _
    ByVal hdc As Long, _
    ByVal x As Long, _
    ByVal y As Long, _
    ByVal nWidth As Long, _
    ByVal nHeight As Long, _
    ByVal hSrcDC As Long, _
    ByVal xSrc As Long, _
    ByVal ySrc As Long, _
    ByVal nSrcWidth As Long, _
    ByVal nSrcHeight As Long, _
    ByVal crTransparent As Long) As Boolean
    
Private Sub Command1_Click()
    Call Picture2.Cls
    Call TransparentBlt(Picture2.hdc, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, vbWhite)
End Sub


Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
16
Flute je viens de voir que je l'avais déjà noter, je me fait vieux.

Chris...
Web : Firstruner - eMail : [mailto:support@firstruner.com Support]