[vb6] Transparence et fond sur des images

Fermé
Sauvegarde2 Messages postés 205 Date d'inscription dimanche 14 décembre 2008 Statut Membre Dernière intervention 11 janvier 2015 - 25 oct. 2009 à 22:55
Sauvegarde2 Messages postés 205 Date d'inscription dimanche 14 décembre 2008 Statut Membre Dernière intervention 11 janvier 2015 - 29 oct. 2009 à 00:22
Bonjour,
Ca fait déja un bon moment que je suis embêté sur mes programmes : dés qu'il est question de mettre une image sur l'autre y'a du blanc en trop. Pour l'éliminer j'ai fait ça :

---
Function Transparence(Image As PictureBox, Fond As PictureBox)
Image.Picture = Stock.Picture
Dim X, Y As Integer
For X = 0 To Image.Width
For Y = 0 To Image.Height
If Image.Point(X, Y) = vbWhite Then
Image.PSet (X, Y), Fond.Point(Image.Left - Fond.Left + X, Image.Top - Fond.Top + Y)
End If
Next
Next
End Function
---

Cette fonction joue son rôle avec une image et un fond statique mais avec une image dynamique ça ne marche plus. Ce qui très étrange c'est qu'en changeant Fond.left et Fond.top par d'autres constantes dans la fonction, l'image effectue parfaitement sa transparence (mais sur un fond fantôme !). Pas moyen de la lui faire faire à l'endroit précis où se trouve le fond : Dés que le "fond fantôme" coincide avec le vrai fond ça ne marche plus.
Voici d'autres fonctions dont je me sert pour le déplacement de l'image :

---
Sub Curseur()
Dim Pos As POINTAPI
Dim Ret As Long
Ret = GetCursorPos(Pos) '(Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long)
CurX = Pos.X
CurY = Pos.Y
End Sub
---

---
Private Sub Souris_Timer()
Curseur
Canon1(1).Left = (CurX - CurOX + Canon1(1).Width)
Canon1(1).Top = (CurY - CurOY + Canon1(1).Height)
Transparence Canon1(1), Alpha 'Alpha est le fond
End Sub
---

---
Private Sub Canon1_Click(Index As Integer)
Load Canon1(1)
Canon1(1).Visible = True
Canon1(1).ZOrder vbBringToFront
Souris.Enabled = True
Curseur
CurOX = CurX
CurOY = CurY
Stock.Picture = Canon1(1).Picture
End Sub
---

J'éspere que c'est clair. Je voudrais juste un petit coup de main.

3 réponses

Sauvegarde2 Messages postés 205 Date d'inscription dimanche 14 décembre 2008 Statut Membre Dernière intervention 11 janvier 2015 261
26 oct. 2009 à 13:13
Up
0
Sauvegarde2 Messages postés 205 Date d'inscription dimanche 14 décembre 2008 Statut Membre Dernière intervention 11 janvier 2015 261
27 oct. 2009 à 08:28
Up² Je paie un coup virtuel au premier qui m'aide ;-)
0
Sauvegarde2 Messages postés 205 Date d'inscription dimanche 14 décembre 2008 Statut Membre Dernière intervention 11 janvier 2015 261
29 oct. 2009 à 00:22
Up3 : Le troisième up.
0