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

VB 6 et antérieur Discussion :

rendre une image transparente


Sujet :

VB 6 et antérieur

  1. #1
    Membre habitué
    Avatar de nabil
    Inscrit en
    Avril 2002
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 223
    Points : 168
    Points
    168
    Par défaut rendre une image transparente
    salut tous le monde,
    est il possible de rendre une partie d'un picturebox transparente de facon à pouvoir l'utiliser comme un claque pour photoshop.
    merci

  2. #2
    Membre expert
    Avatar de khany
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 073
    Points : 3 890
    Points
    3 890
    Par défaut
    dans la page sources, on parle de transparence, cela pourrait-il t'aider ?

    si non, essaie de faire un peu de code et poste à la suite

  3. #3
    Membre habitué
    Avatar de nabil
    Inscrit en
    Avril 2002
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 223
    Points : 168
    Points
    168
    Par défaut
    salut,
    Khany le code qui parle de transparence dans la partie code permet de rendre un controle en sa totalité transparent mais je veux juste rendre une partie (sélectionné à main) d'un picturebox transparente.
    d'ou je peux pas utiliser le code proposer.
    si tu as une autre idée à le faire ou à l'ajuster à mon besoin dis le moi spt car je ne trouve pas comment faire.

  4. #4
    Membre expert
    Avatar de khany
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 073
    Points : 3 890
    Points
    3 890
    Par défaut
    je n'ai jamais eu besoin de ce système mais j'ai un jour croisé sur le web un programme nommé "Translucent" !

    Je ne sais pas si cela pourra t'aider mais, qui ne risque rien n'a rien dit-on

  5. #5
    Membre habitué
    Avatar de nabil
    Inscrit en
    Avril 2002
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 223
    Points : 168
    Points
    168
    Par défaut
    Khany le programme Translucent ,je le connais aussi il marche avec les même api et techniques que le code de notre site .
    donc rien de nouveau pour mon problème.
    je dirai même que je ne sais pas comment puis je aborder le problème d'ou je n'ai pas même une ligne de code à présenter mais je cherche encore sur le net.

  6. #6
    Membre expert
    Avatar de khany
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 073
    Points : 3 890
    Points
    3 890
    Par défaut
    Désolée !

    Bon courage dans tes recherches

  7. #7
    Membre habitué
    Avatar de nabil
    Inscrit en
    Avril 2002
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 223
    Points : 168
    Points
    168
    Par défaut
    mes recherches n'aboutissent à rien pour le moment
    aucune une idée de la part des adérants du forum.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 40
    Points : 39
    Points
    39
    Par défaut
    Salut Nabil

    Malheureusement, les controles d'images standards de VB6 ne gèrent pas la couche Alpha de tes images (le fameux "calque" qui indique les parties transparentes, notamment en PNG)

    Ils ont réctifié le tir en VB.NET qui gere enfin la couche Alpha. mais bon je ne pense pas que tu vas changer de langage pour avoir une ou deux icones transparentes

    Tu peux éventuellement faire des recherches sur d'autres composants pour VB6 qui intègrent cette fonctionnalité, mais qui sont souvent payants.

  9. #9
    Membre habitué
    Avatar de nabil
    Inscrit en
    Avril 2002
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 223
    Points : 168
    Points
    168
    Par défaut
    est ce que je dois laisser tomber ???????????
    pour le moment je ne vais pas désespérer et je continuerai à chercher.
    evidament si je trouverai une solution je n'hésiterai pas à la poster

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    la seule chose que j'ai trouvé concernant la transparence concerne l'intégralité de l'image...

  11. #11
    Membre habitué
    Avatar de nabil
    Inscrit en
    Avril 2002
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 223
    Points : 168
    Points
    168
    Par défaut
    même toi Space tu n'as pas de solution

  12. #12
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 097
    Points : 16 606
    Points
    16 606
    Par défaut
    Si j'ai bien compris cette solution devrait convenir.
    Dans une Form,
    1 CommandButton nommé "Cmd" pour declancher le processe
    1 PictureBox nommé "Picture2" contenant une image quelconque qui servira de fond
    1 PictureBox Nommé "Picture1" contenant une image ayant une partie de couleur à rendre transparante
    1 PictureBox nommé "PictDest" pour recevoir le resultat
    les PictureBoxs
    AutoRedraw = True
    ScaleMode = 3 (Pixels)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Option Explicit
     
    'declaration de l'aPI permettant de rendre transparant une couleur
    Public 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
     
    Dim MeColorTransp as long 'Pour couleur à ne pas dessiner
     
     
     
    Private Sub Cmd_Click()
    '********* Copie avec couleur transparante ********
    'charge une image contenu dans un pictureBox pour avoir un fond
    PictDest.Picture = Picture2.Image: DoEvents
     
    'dimmensionne au format de l'image à dessiner
    PictDest.Height = Picture1.Height: PictDest.Width = Picture1.Width
     
     
    MeColorTransp = 255 'rouge, partie de l'image de cette couleur à ne pas dessiner sur PictDest
    TransparentBlt PictDest.hdc, 0, 0, PictDest.ScaleWidth, PictDest.ScaleHeight, _
    Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, MeColorTransp
    PictDest.Visible = True: PictDest.Refresh
    End Sub
    Salut une reponse ou le tag resolu , pour savoir si sela te convient ....ProGelecT

  13. #13
    Membre habitué
    Avatar de nabil
    Inscrit en
    Avril 2002
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 223
    Points : 168
    Points
    168
    Par défaut
    salut ,
    merci pour ta réponse, c'est ce que je voulai mais j'en juste un autre petit problème si je voulais déplacer l'image de l'arriere plan ,je pense que je devrai changer les cordonnée X,Y dans l'api .
    Lorsque je change les cordonnées 0,0 je n'obtiens qu'une seule image.
    code proposé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TransparentBlt PictDest.hdc, 0, 0, PictDest.ScaleWidth, PictDest.ScaleHeight, _
    Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, vbWhite
    code avec les X,Y changée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TransparentBlt PictDest.hdc, 0, 0, PictDest.ScaleWidth, PictDest.ScaleHeight, _
    Picture1.hdc, 10,10, Picture1.ScaleWidth, Picture1.ScaleHeight, vbWhite
    avec ce code je n'obtiend que le contenu du picture2
    merci.

  14. #14
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 097
    Points : 16 606
    Points
    16 606
    Par défaut
    pour mettre un objet au premier plan
    Pour ce qui est de la copie d'une image contenant une couleur à rendre transparente, avec l'API "TransparentBlt", voici un complément d'infos,
    j'ai completé les explications dans la procedure Cmd_Click.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Private Sub Cmd_Click()
    '********* Copie avec couleur transparante ********
    'charge une image contenu dans un pictureBox(Picture2.Image) pour avoir un fond
    'sur lequel sera dessiné l'image contenant une couleur devant etre transparente (Picture1)
    PictDest.Picture = Picture2.Image: DoEvents 'image forcement d'arriere plan
     
    'dimmensionne au format de l'image fond
    PictDest.Height = Picture2.Height: PictDest.Width = Picture2.Width
     
    'pour centrer l'image contenant la couleur à rendre transparente
    '(qui sera forcement au 1° plan, et plus petite que l'image fond) sur le Fond
    Dim MeLeft, MeTop, MeHeight, MeWidth As Integer
    MeHeight = Picture1.ScaleHeight
    MeWidth = Picture1.ScaleWidth
    MeLeft = (Picture2.ScaleWidth - Picture1.ScaleWidth) / 2
    MeTop = (Picture2.ScaleHeight - Picture1.ScaleHeight) / 2
     
    MeColorTransp = 255 'rouge, partie de l'image de cette couleur à ne pas dessiner sur PictDest
    TransparentBlt PictDest.hdc, MeLeft, MeTop, MeWidth, MeHeight, _
    Picture1.hdc, 0, 0, MeWidth, MeHeight, MeColorTransp
    PictDest.Visible = True: PictDest.Refresh
    PictDest.ZOrder
    End Sub
    j'espere avoir repondu a ta question.
    ProgElecT

  15. #15
    Membre habitué
    Avatar de nabil
    Inscrit en
    Avril 2002
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 223
    Points : 168
    Points
    168
    Par défaut
    Rebonjour,
    je veux déplacer l'image du fond pas l'autre(celle qui a des parties transparente)
    1 PictureBox nommé "Picture2" contenant une image quelconque qui servira de fond
    1 PictureBox Nommé "Picture1" contenant une image ayant une partie de couleur à rendre transparante
    1 PictureBox nommé "PictDest" pour recevoir le resultat
    je veux déplacer picture2 dans pictdest en changent ces corconnées dans pictdest
    merci

  16. #16
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 097
    Points : 16 606
    Points
    16 606
    Par défaut
    fait un paintpicture sur PictDest avec Picture2 au lieu de charger directement l'image de fond contenu dans Picture2

    Desolé, je doit m'absenter pour l'apres midi je reprendrai en revenant.

    Bon courage
    ProgElecT

  17. #17
    Membre habitué
    Avatar de nabil
    Inscrit en
    Avril 2002
    Messages
    223
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 223
    Points : 168
    Points
    168
    Par défaut
    pour le paintpicture ca ne marche pas mais j'ai trouvé la solution :
    j'en ai ajouter un autre picturebox intermédiare et je positionne mon image avec bitblt puis je prend ce dernier comme fond et ca marche Nickel

    Merci infinément pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment rendre une picturebox transparente ?
    Par AsmCode dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 29/07/2006, 07h16
  2. rendre une image flottante
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/06/2006, 09h04
  3. Comment rendre une form transparente à certains endroits ?
    Par ludo5532 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 21/08/2005, 15h28
  4. rendre une image transparente
    Par matt92700 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 02/06/2005, 08h42

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