threadom
Messages postés101Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention 1 novembre 2007
-
20 août 2006 à 18:02
threadom
Messages postés101Date d'inscriptionmardi 8 avril 2003StatutMembreDerniè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 :
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.
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013131 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 !
threadom
Messages postés101Date d'inscriptionmardi 8 avril 2003StatutMembreDerniè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.
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013131 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.
threadom
Messages postés101Date d'inscriptionmardi 8 avril 2003StatutMembreDerniè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
threadom
Messages postés101Date d'inscriptionmardi 8 avril 2003StatutMembreDerniè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