CeNedra83
Messages postés96Date d'inscriptionlundi 20 novembre 2000StatutMembreDernière intervention11 juillet 2006
-
1 juil. 2005 à 14:35
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 2007
-
4 juil. 2005 à 18:03
J'utilise la fonction stretchblt pour zoomer une pisturebox sur laquelle j'ai dessiné une grille, puis un graphique....
Lorsque je zoom, selon la valeur du zoom, ma grille n'est plus exactement la même, c'est à dire des lignes qui étaient en gras ne le sont plus et inversement.....cependant au niveau échelle, elle n'est pas déformée et reste telle quelle!!
CeNedra83
Messages postés96Date d'inscriptionlundi 20 novembre 2000StatutMembreDernière intervention11 juillet 2006 4 juil. 2005 à 09:48
Merci beaucoup pour cette réponse!! En effet, c'est bien ça....et je débute aussi en VB donc je ne pensais pas à ce pb!! Existe t il d'autre fonctions qui font la même chose sans ce phénomène là?
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 2 juil. 2005 à 01:24
Ton problème est, à mon avis, un simple piège à
débutant... C'est à dire qu'il faut bien comprendre comment cette
fonction opère... En réalité, elle n'utilise pas d'anti-aliasing
(anti-crénelage en bon français...). C'est à dire qu'elle ne travail
qu'avec des valeurs entières... Alors regarde le problème, par exemple,
lorsque tu veux redimensionner une image de 3x3 en 4x4... Supposons
qu'il y ait un pixel noir en 2x2 (avec un fond blanc...), la question
est : Mais Où peut-on bien pouvoir placer ce foutu pixel en 4x4 ??? Sur
3x3 ce serait faux, sur 2x2 aussi car on devrait le mettre entre 2 et
3... héhé, avec de l'anti-aliasing le problème serait vite résolu : un
mettrait dans 2 et dans 3 la quantité de noir qu'ils méritent chacun
(c'est à dire, du gris!). Mais lorsqu'on a affaire à des fonctions
aussi brutes n'utilisant pas l'anti-crénelage, on a des problèmes
d'arrondi.
Du coup, une fois il va te mettre le pixel noir sur 2x2, une autre fois
sur 3x3 et une autre fois sur 2x2 ET 3x3 ce qui, inévitablement, te
doublera les lignes de ta grille!
Donc, la seule solution est de ne prendre que les facteur de zoom x2 (2, 4, 8, ...) !!!
Voilà, problème résolu
Enjoy
<hr size="2" width="100%">
(Si une réponse vous convient, cliquez sur son bouton "Accepter ...")
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 4 juil. 2005 à 18:03
Nota : C'est pas TON message qu'il faut valider mais le mien !!! lol
Non, pas à ma connaissance. Ceci dit, il existe des bibliothèques (DLL)
de fonctions graphiques qui doivent utiliser les WuPixels
(l'anti-aliasing si tu préfères!) mais je n'en ai pas à te donner comme
ça de tête! Met un message sur le forum et je suis certain que plus
d'un membre te répondra... Je sais qu'il existe une bibliothèque
gratuite (que quelques membres utilisent).
Ceci dit, la majorité des DLL ne sont pas libre d'utilisation et ne
sont donc pas documentés!!! Bref, c'est pas gagné d'avance! De plus, il
faut savoir que les DLL (API) ne s'utilisent pas si facilement!!! Il
faut déjà t'y connaitre un peu en VB (avoir un peu d'expérience quoi!)
Sinon, quand tu l'auras (cette expérience), je pense que tu pourras facilement programmer ta propre DLL
Ceci dit, avec le nouveau Windows et le .Net, je pense qu'ils nous
livreront bien une bibliothèque gratuite qui fera ça!!! A voir...