Enregistrer image

je test Messages postés 23 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 6 décembre 2009 - 28 mai 2007 à 10:49
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 29 mai 2007 à 22:40
hello à tous

Je cherche sans trouver mon bonheur, alors je viens poster en me disant qu'une ame charitable m'aidera

J'ai une image1 dans mon soft, j'ai pris un morceau de code pour reduire les images proportionnelement, c'est parfait, donc mon image1 qui d'origine fait 1024X768 se retrouve avec des dimmension diviser par 10, je la vois bien dans mon image1.

je voudrais enregistrer cette image, j'ai fais SavePicture Image1.Picture, ("c:\test\temp.jpg") mais ca l'enregistre dans ca taille d'origine,  pourquoi donc ????

au secours, comment faire simplement.

PS je debute bien sur, je prend VB que de temps en temps quand j'ai besoin de me faire un petit soft

Merci les gens

11 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
28 mai 2007 à 11:37
la propriété Picture de l'image ne reflete pas l'affichage, mais bien l'image a afficher aux dimensions de ton controle

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
je test Messages postés 23 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 6 décembre 2009
28 mai 2007 à 11:40
comment faire alors pour enregistrer la taille que je souhaite ?

merci à toi :)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
28 mai 2007 à 12:17
tu peux faire un PaintPicture d'un pictirebox a un autre, et là, utiliser SavePicture

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
cs_lermite222 Messages postés 492 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 juillet 2012 4
28 mai 2007 à 16:52
bonjour,
Une autre solution, employer 2 picturebox, mettre l'image dans la N°1, dimentionner la 2 au dimentions voulues et employer l'api StretchBlt pour copier l'image de 1 à 2, ensuite, printer ou Sauve de la N°2 serront aux bonnes dimentions.
A+
louis
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_lermite222 Messages postés 492 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 juillet 2012 4
28 mai 2007 à 16:58
salut renfield, mais je crois que de la façon que tu explique, l'image aurra toujour la même dimention. 
A+
louis
0
cs_lermite222 Messages postés 492 Date d'inscription jeudi 5 avril 2007 Statut Membre Dernière intervention 2 juillet 2012 4
28 mai 2007 à 17:12
Une approche...
Public  Const SRCCOPY = &HCC0020
Public Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long


    R = StretchBlt(Pic_destination.hdc, Top, _
    Left, largeurDest, hauteurDest, _
    Pic_source.hdc, 0, 0, largeurSource, hauteurSource, SRCCOPY)
A+


louis
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
28 mai 2007 à 18:47
non, PaintPicture et StrechBlt, même combat

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
28 mai 2007 à 19:21
1) Il faut figer l'image avant de sauvegarder le résultat de ce que tu as resuit ou modifié.
Tout celà, bien sur, à condition qu'il s'agisse d'un contrôle PictureBox et pas d'un Contrôle Image, qui, lui, ne serait pas opérationnel pour ce que tu veux faire
Si image1 est donc bien une PictureBox :
Image1.Picture= Image1.Image juste avant de sauvegarder.
2) le savePicture sauvegardera en .bmp et pas en .jpg (le raster sera en bmp même si tu l'assubles d'une autre extension)
0
je test Messages postés 23 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 6 décembre 2009
28 mai 2007 à 22:15
ba crote alors, c'est un controle image, ca m'aurait pas etonner que ca marche avec ce controle
0
je test Messages postés 23 Date d'inscription dimanche 17 avril 2005 Statut Membre Dernière intervention 6 décembre 2009
29 mai 2007 à 21:51
re moi

personne ne pourais me faire ca ?

ouvrir une seul image, la reduire en taille avec un slider, et ensuite enregistrer l'image resultante.

J'ai regarder sur les sources, mais il y a toujours un truc en trop qui me gene, et comme en vb c'est pas ca.

oui j'abuse :(
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
29 mai 2007 à 22:40
re-moi aussi, alors...
Si tu veux le faire en te servant d'une picturebox, c'est possible.
Avec un contrôle image : non (pas ce que tu veux faire)
Avec une PictureBox, alors ? ouvre et analyse n'importe laquelle de mes sources traitant d'umages : elles utilisent toutes un redimensionnement pour l'affichage.
Pour sauvegarder ensuite le résultat : je t'ai déjà répondu, il me semble.
Bonne étude.
0