Transparence

Julesb007 Messages postés 15 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 31 octobre 2004 - 31 oct. 2004 à 20:07
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 - 1 nov. 2004 à 00:29
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

cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
31 oct. 2004 à 20:54
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]
0
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
1 nov. 2004 à 00:18
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
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
1 nov. 2004 à 00:20
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]
0
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
1 nov. 2004 à 00:24
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
1 nov. 2004 à 00:28
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]
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
1 nov. 2004 à 00:29
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]
0
Rejoignez-nous