Saver un picturebox

cocodet Messages postés 7 Date d'inscription samedi 13 mars 2010 Statut Membre Dernière intervention 20 mars 2010 - 18 mars 2010 à 21:10
cocodet Messages postés 7 Date d'inscription samedi 13 mars 2010 Statut Membre Dernière intervention 20 mars 2010 - 20 mars 2010 à 22:00
Je change les pixels d'une photo en utilisant getpixel et setpixelV dans une photo.jpg placée dans un picturebox (picture1).
A la fin je veux garder cette image transformée dans un fichier.
SavePicture Picture1.Picture, b$ où b$ est le nom du fichier sauve toujours l'image avant les transformations.
Que se passe-t-il?

10 réponses

NHenry Messages postés 15151 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 4 septembre 2024 159
18 mars 2010 à 21:25
Bonjour,

Non, c'est PictureBox1.Image, pas .picture

bonne soirée.

Mon site
0
cocodet Messages postés 7 Date d'inscription samedi 13 mars 2010 Statut Membre Dernière intervention 20 mars 2010
18 mars 2010 à 22:04
J'ai aussi essayé ça aussi mais j'ai encore l'image avant les transformations dans le fichier sauvé, et non l'image transformée.
0
cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 1
19 mars 2010 à 16:13
Bonjour
Ayant ce problème, je l'ai résolu comme suite.
Il faut passer par une PictureBox supplémentaire sur laquelle est copiée l'image de la PictureBox qui a été modifiée.
PictureBox_Cible.Picture = PictureBox_Modifiée.Image
SavePicture PictureBox_Cible, "Dossier\Nom.Bmp"

CNTJC
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
19 mars 2010 à 16:21
Bonjour,

Et à tout hasard, en rajoutant un refresh juste avant de sauvegarder les modifications??


L'expérience, c'est une connerie par jour, mais jamais la même..
0

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

Posez votre question
cocodet Messages postés 7 Date d'inscription samedi 13 mars 2010 Statut Membre Dernière intervention 20 mars 2010
19 mars 2010 à 18:31
J'ai essayé ça, sans résultat. Refresh ramène la photo d'origine (.jpg) placée dans le picturebox.
Je modifie l'image en utilisant getpixel et setpixel qui dans les faits semblent travailler dans le picturebox mais ne pas avoir d'effet sur l'image d'origine elle même. Quand on sauve directement ou après avoir copié dans un autre picturebox, on sauve l'image du début et non l'image transformée.
0
cs_Blodox Messages postés 134 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 24 octobre 2010
20 mars 2010 à 01:42
Bonsoir,
Essaies ça (VB 2005)


' (sur une seule ligne)
Dim NOUVELLE_IMAGE_BMP As New Bitmap(PictureBox1.Width, PictureBox1.Height, Imaging.PixelFormat.Format32bppRgb)
'
NOUVELLE_IMAGE_BMP.SetResolution(300, 300)
'
NOUVELLE_IMAGE_BMP = CType(PictureBox1.Image, Bitmap)
'
' (sur une seule ligne)
Dim NOUVELLE_IMAGE_GRF As Graphics = Graphics.FromImage(NOUVELLE_IMAGE_BMP)
'
'...
NOUVELLE_IMAGE_GRF.DrawLine(Pens.Red, 0, 0, 99, 99) ' ligne rouge
NOUVELLE_IMAGE_GRF.DrawLine(Pens.Green, 0, 99, 99, 0) ' ligne verte
'par exemple -> modification de l'image, ici je rajoute une croix rouge et verte sur mon image d'origine (issue du picturebox)
'
'...
NOUVELLE_IMAGE_BMP.Save("monrépertoire\monfichierimage.bmp")
'...
'


Fluctuat .NET mergitur...
0
cocodet Messages postés 7 Date d'inscription samedi 13 mars 2010 Statut Membre Dernière intervention 20 mars 2010
20 mars 2010 à 14:41
Je ne connais pas VB 2005. Je n'ai pas pu transposer en VB6
0
cnt Messages postés 219 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 20 décembre 2010 1
20 mars 2010 à 18:18
Salut
Il faut que la PictureBox ait sa proriété "AutoRedraw" à Vrai(= True), ainsi que la forme qui contient la PictureBox, il faut aussi faire un "Refresh" de la PictureBox après un SetPixel.
Puis en final enregistrer l'Image comme suite :
SavePicture PictureBox.Image, "Test.Bmp"

CNTJC
0
cocodet Messages postés 7 Date d'inscription samedi 13 mars 2010 Statut Membre Dernière intervention 20 mars 2010
20 mars 2010 à 19:13
En mettant le autoredraw sur true, le picture box reste toujours sur l'image de départ. Les modifs n'apparaissent pas. Je pourrais vous envoyer tout mon programme VB6. J'essaie tout et n'importe quoi depuis une semaine sans résultats.
cocodet@videotron.ca
0
cocodet Messages postés 7 Date d'inscription samedi 13 mars 2010 Statut Membre Dernière intervention 20 mars 2010
20 mars 2010 à 22:00
J'ai finalement trouvé
le autoredraw du picture box est mis à vrai dans le "load" pour être sur.
Picture1.AutoRedraw = True
j'ai mis à la fin de chaque modification du picture box (cela se fait dans une boucle):
Picture1.Refresh
DoEvents
Ce qui fait que l'on voit les transformations se faire puis quand je veux sauver l'image obtenue:
Picture1.Picture = Picture1.Image
SavePicture Picture1.Image, b$
Où b$ est le nom du fichier.

MERCI à tous.
0
Rejoignez-nous