Bonjour a tous
.
Je débute en c# et j'ai un soucis lors de la création d'une carte 2d organisé sur une grille 20x20 pour afficher une image correspondant une case .
L'image fais en taille 30x30 pixels, donc la taille de la case aussi.
Cependant quand l'image s'affiche les bords de l'image ne s’affichent pas correctement, je ne comprends pas pourquoi.
Voici mon code et ce que ça donne;
Bizzarement si je change
dessine.DrawImage(arbre, element._x*30, element._y*30);
par
dessine.DrawImage(arbre, element._x*45, element._y*45);
les arbres s'affichent correctement
Je ne comprend ce que je fais de mal, pourriez vous m'éclairer?
Merci de vos réponses et bonne journée!
Salut,
Essaye ce code:dessine.DrawImage(arbre, (element._x * taille_case) + (taille_case / 2), (element._y * taille_case) + (taille_case / 2));
(la position 0 doit êtres au centre de l'image)
Bonjour. Merci pour ta réponse, cependant le problème n'est pas résolu, voici le resultat;
j'ai l impression que le problème viens plus de la taille de l'image qui est supérieure a ce qu'elle devrait être, c'est pourquoi elle s'affiche complète quand la case fait 45x45. Se pourrait il que mon programme augmente la taille en pixel de mon image automatiquement?(désolé si ca semble con comme question)
Merci d'avance!
Apres tests mon programme initial marche bien avec une image au format jpg, c'est lorsque j'utilise une image png que l'image semble agrandie. Du coup ca marche mais si quelqu'un connait la raison de ceci je suis preneur!
Tu a une grille de 20 pixel et une image de 30 pixels et tu ne pense pas que soit:
1) La grille doit faire aussi 30
2) L'image doit faire aussi 20
2) L'image doit etre déformé pour passer a 20
Bonjour.
Merci pour ta réponse, mais ma grille étais une grille de 20x20 cellules faisant 30 pixels par 30 pixels (ce qui est visible dans le code que j'ai posté )
Le problème viens en fait de résolution de l'image , qui a une taille en pixel (pour le coup 30pixels par 30 pixels) mais aussi une résolution en pixel par pouce(ici 72 dpi), d'ou la déformation puisque mon moniteur affiche du 96 dpi/
http://www.xtremevbtalk.clk.com/showthread.php?t=319893
img is 100x100x72. It will be displayed with a physical size of ~1.38 inches, as if it were a 133x133x96 image.
img is 100x100x96. This will appear the same as DrawImage() since the display and image match.
img is 100x100x120. It will be displayed with a physical size of ~0.83 inch, as if it were an 80x80x96 image.
Pour résoudre cela j'ai juste forcer l'affichage dans ma cellule de 30x30 pixels ;)
dessine.DrawImage(arbre, element._x*taille_case, element._y*taille_case, taille_case, taille_case);
Je met le sujet en résolu, peut être que cela pourra aider quelqu'un d'autre.
Bonne journée!