Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionTa demande est étonnante, André, car elle consisterait à vouloir modifier toute la philosophie d'une matrice.
Juste pour faire coincider avec la philosophie de ta représentation en axes orientés ?
J'ai bien compris qu'André voulait des pixels vu que les propriétés des images des classes Shapes
et Pictures que j'utilise me renvoient directement des points !
N'est-ce pas le cas pour un OLEObject ?
Sinon si c'est pareil, il y a bien plus simple - en tout cas dans la version 2003 - pour récupérer
des pixels, pas besoin d'appeler une Lib externe ...
R = ActiveWorkbook.WebOptions.PixelsPerInch / 72 xPixel = .Width * R yPixel = .Height * R
Cette propriété renvoie ou définit la densité (exprimée en pixels par pouce) des images de graphismes et des cellules de tableau d'une page Web. La plage de paramètres est généralement comprise entre 19 et 480 pixels par pouce et les paramètres courants des tailles d'écran répandues sont 72, 96 et 120 pixels par pouce. Le paramètre par défaut est 96 pixels par pouce. Type de données Long en lecture-écriture.
..... .... pixels_width = Application.CentimetersToPoints(toto.Width / 1000) * 20 / TwPerPix("X") pixels_height = Application.CentimetersToPoints(toto.Height / 1000) * 20 / TwPerPix("Y") ... ...
Set machin = Application.DefaultWebOptions MsgBox machin.PixelsPerInch
Revenons à nos moutons :
André :
Je pense tout simplement que cela vient de l'entier, qui tronque.
Supprime-le (pas d'importance puisque le type Long choisi "corrigera"
... Set toto = LoadPicture("d:\bateau.bmp") pixels_width = CInt(Application.CentimetersToPoints(toto.Width / 1000) * 20 / TwPerPix("X")) pixels_height = CInt(Application.CentimetersToPoints(toto.Height / 1000) * 20 / TwPerPix("Y")) hdc = CreateCompatibleDC(0) ...
La propriété ScreenSize vous permet de définir la taille d'écran optimale pour les navigateurs Web cible.
Private Sub CommandButton1_Click() Set machin = Application.DefaultWebOptions machin.PixelsPerInch = 110 ' <<<<<===== volontairement fantaisiste MsgBox machin.PixelsPerInch End Sub Private Sub UserForm_Click() Set machin = Application.DefaultWebOptions MsgBox machin.PixelsPerInch End Sub
Je te l'accorde, utilisant cette méthode depuis une p'tite dizaine d'année,
par bonheur je n'ai jamais été confronté aux fantaisies d'un utilisateur
car heureusement cette méthode PixelsPerInch est peu ou prou usitée