Redimensionnement d?image

Résolu
angelanddelus100 Messages postés 12 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 15 juillet 2007 - 2 juil. 2007 à 20:37
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011 - 4 juil. 2007 à 22:40
Bonjour à tous,



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




Voila mon problème,



 




J’ai un petit projet à réaliser et une de ces fonctions est de redimensionner des images d’une vidéo d’un format quelconque en 12 par 12 pixels (un peu surprenant mais c’est un des buts de mon projet). Mission réussi, j’ai mon image en 12 par 12 en utilisant la librairie Windows Image Acquisition. Malheureusement je voudrais visualiser ces images dans une PictureBox mais lorsque je fais ce code :



 






  Img2.SaveFile(FileB)






        picCurF.Load(FileB)






        picCurF.SizeMode = PictureBoxSizeMode.StretchImage



 




« Img2 étant une variable Object »


« FileB mes images en 12 par 12 à afficher»



                       



 




Je ne visualise pas l’image en 12 par 12 mais une image 12 par 12 interpolé. C'est-à-dire qu’il me lisse mon image en format 12 par 12. Un petit coup de pouce pour un débutant ne me ferait pas de mal. J’ai beau rechercher sur le net je ne trouve pas de solution pour le moment. (Je commence à être limité en vitesse de calcul, j’espère qu’une solution simple existe).


Merci à vous tous

3 réponses

TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
4 juil. 2007 à 22:40
code le avec tes algo a toi :p
pas difficile de faire ca avec les fonction GDI SetPixel et GetPixel
tu remplace 1 pixel du 12x12 par un carré de 20 sur 20 pixel  ce qui fait au final une image de 240x240 :

for i as integer = (yOrgine*echelle) to ((yOrigine+1)*echelle -1)
    for j as integer = (yOrgine*echelle) to ((yOrigine+1)*echelle -1)
       SetPixel(i, j, GetPixel(xOrigine, yOrigine) ' <=== syntaxe surment fausse mais ca doit pas en etre tres loin
    Next
Next

TeBeCo
3
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
2 juil. 2007 à 21:36
Ouvrir l'aide MSDN
tapper "PictureBox.SizeMode"
cliquer sur :"PictureBoxSizeMode" car on voit que "PictureBox.SizeMode" est de ce type
>

AutoSize, La PictureBox est dimensionnée par rapport à la taille de l'image
qu'elle contient. , ----
, CenterImage, L'image est affichée au centre si la taille de la PictureBox est
supérieure à celle de l'image. En revanche si l'image est plus grande que la
PictureBox, elle est placée au centre de la PictureBox et les
bords externes sont découpés. , ----
, Normal, L'image est placée dans le coin supérieur gauche de la PictureBox.
L'image est découpée si elle est plus grande que la PictureBox dans
laquelle elle figure. , ----
, StretchImage, L'image contenue dans la PictureBox est étirée ou rétrécie pour
correspondre à la taille de la PictureBox. , ----
, Zoom, La taille de l'image est augmentée ou réduite en conservant les
proportions. 

comprendre que faire "picCurF.SizeMode = PictureBoxSizeMode.StretchImage" implique donc le problème en question et qu'il faut donc mettre : "Autosize"

*Sauter de joie ca marche*

TeBeCo
0
angelanddelus100 Messages postés 12 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 15 juillet 2007
3 juil. 2007 à 11:07
Merci pour ta réponse. l'autoside me permet de visualiser ces images en 12 par 12 c'est vrai. Mais en 12 par 12 on ne voit pas grand chose. J'aurai aimé trouvé une option qui agrandisse mes images sans interpoler mes pixels. Une sorte de Zoom qui ne me modifie pas mes images.

Merci,
0
Rejoignez-nous