Problème taille d'icon affiché.

Résolu
threadom Messages postés 101 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 1 novembre 2007 - 20 août 2006 à 18:02
threadom Messages postés 101 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 1 novembre 2007 - 20 août 2006 à 20:27
Bonjour,

    Mon problème est simple, dans une picturebox j'ai une image et je charge un icon dans cette dernière de la facon suivant :

       imageIcon.Picture = LoadResPicture(101, vbResIcon)

    Logiquement ca devrais marché correctement, cependant mon Icon affiché est totalement déformé, que je mette le strech en true ou en false. En strech = false, j'ai l'impression que l'icon fais 3 ou 4 fois sa taille, et en true celui ci est complement écrasé alors que la taille de mon Imagfe semble bonne.

    ?imageIcon.width
    375
    ?imageIcon.height
    375

    J'ai fais la convertion en pixel (avec twipsbypixel) et j'obtien 25, et mon icon fais bien 25x25 (16 couleurs).

    J'ai donc regardé la taille de celui ci après chargement de mon res dans un IPictureDisp (avec width et height) et j'obtien :

    ?tmpImage.width
    847
    ?tmpImage.height

    847

Quelqu'un aurais t'il une idée du pourquoi du comment de cette déformation ? et surtout de comment résoudre le problème d'une manière propre ?

note: j'ai vraiment besoin que mon icon ce trouve dans mon exe, et que la transparence s'applique.

7 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
20 août 2006 à 18:42
Et pourquoi n'utiliserais-tu pas une image bitmap avec couleur uniforme pour la transparence : tu pourais facilement appliquer la transparence avec l'API TransparentBlt.

Perso, j'ai eu pas mal de petits problèmes avec les icônes dans le fichier ressource, mais jamais un problème de taille d'icône !
3
threadom Messages postés 101 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 1 novembre 2007
20 août 2006 à 18:45
Salut,

Ok je vais essayé, c'est vrai que par contre aucun problème de dimensionnement avec les image bitmap du fichier ressource, merci. Me reste plus qu'a comprendre l'utilisation de TransparentBlt.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
20 août 2006 à 19:08
Elle est vraiment pas compliqué, elle marche un peu sur le principe de la fonction PaintPicture du PictureBox.

Tu peux aller voir ma source qui lui est consacré si tu veux : elle te montrera comment s'en servir, et comment pallier au problème de compatibilité avec Windows 95 en utilisant ma classe de gestion d'images.
0
threadom Messages postés 101 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 1 novembre 2007
20 août 2006 à 19:33
Erm j'ai un peu de mal a l'utilisé la :

J'ai créer une procédure :

Public Function IMG_DrawTransparentBitmap(ByRef oPicture As PictureBox, ByRef oBitmap As IPictureDisp) As Long
    IMG_DrawTransparentBitmap = TransparentBlt(oPicture.hDC, 0, 0, GetPixelX(oPicture.Width), GetPixelY(oPicture.Height), oBitmap.Handle, 0, 0, GetPixelX(oBitmap.Width), GetPixelY(oBitmap.Height), RGB(4, 132, 132))
    oPicture.Refresh
End Function

et je l'utilise comme ceci :

Debug.print IMG_DrawTransparentBitmap(picImgReduce, LoadResPicture(101, vbResBitmap))

Retour de IMG_DrawTransparentBitmap => 0

et je n'ai rien qui s'affiche... As tu une idée ?

pas réessayer de mettre l'image (cette fois ci dans la picturebox) sans utilisé la fonction je vais essayé tout de suite.
0

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

Posez votre question
threadom Messages postés 101 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 1 novembre 2007
20 août 2006 à 19:35
Sans la fonction ca passe ... bonne taille ... mais biensur pas la transparence ...
0
threadom Messages postés 101 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 1 novembre 2007
20 août 2006 à 19:35
Simple question c'est compatible XP ? j'ai vu 98/2000 sur un site
0
threadom Messages postés 101 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 1 novembre 2007
20 août 2006 à 20:27
Ca marche si je passe par une autre PictureBox pour le loadResPicture et que ensuite je me sert de cette picturebox pour faire la copie de l'image sans la transparence ... mais pas moyen en partant de l'image
0
Rejoignez-nous