Bonsoir,
Cette nouvelle discussion fait suite a la precedente, mais j'ai un peu evolue depuis.
Au lieu de copier un controle sur une image (Screenshot), je construis moi-meme le "controle" avec Graphic. Un peu plus complique, mais cela me donne plus de marge.
Lorsque je cree une forme (par exemple, un rectangle) sur une image, pour garder les proportions par rapport a la "Size" de l'image, je dois faire quelquechose de ce genre:
Par contre, pour garder la bonne proportion du "Font" en fonction de l'image choisie, cela parait plus difficile.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Using g As Graphics = Graphics.FromImage(img) g.FillRectangle(Brushes.Gray, New Rectangle(img.Width * 0.55, img.Height * 0.05, img.Width * 0.4, img.Height * 0.05)) ...etc...
Comment calculer le "Font" (16 ci-dessus) en gardant les proportions par rapport a la "Size" de l'image?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Dim drawString As String = "Sample" Dim drawFont As New System.Drawing.Font("Arial", 16) Dim drawBrush As New System.Drawing.SolidBrush(System.Drawing.Color.Black) Dim x As Single = img.Width * 0.66 Dim y As Single = img.Height * 0.055 g.DrawString(drawString, drawFont, drawBrush, x, y)
Car dans ce cas, un charactere depend de "Width" et "Height". Le charactere est en quelque sorte en 2D.
Il y a peut-etre une astuce que je ne connais pas.
Par exemple, sur une meme taille d'ecran:
Image 1: 6000x4000 avec Font("Arial", 16) donne un mot ecrit tres petit.
Image 2: 1000x800 avec Font("Arial", 16) donne un mot ecrit plus gros.
Je desire reduire la photo a une taille bien precise quelquesoit l'image originale (image 1 ou 2), et donc avoir le meme "Font".
En esperant avoir expose mon probleme clairement.
Toute suggestion/idee est bienvenue.
Merci,
JLuc01
Partager