sauvegarder une picturebox au format JPG e

Le
Dan
Bonjour a tous.
Coment proceder pour copier une Picture box sur mon dd au format JPG?
PictureBox1.Image.Save("c:essai.jpg") ne marche pas erreur .Une erreur
générique s'est produite dans GDI+.



que me conseillez vous

D'avance merci de votre aide
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Patrice
Le #18388121
Doù vient l'image ? Attention également un utilisateur normal ne peut pas
créer un fichier à la racine du disque dur ?

Sion qq chose comme :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim b As New Bitmap(100, 100, Imaging.PixelFormat.Format32bppRgb)
Dim g As Graphics = Graphics.FromImage(b)
g.FillRectangle(Brushes.AliceBlue, New RectangleF(0, 0, 100, 100))
g.Dispose()
PictureBox1.Image = b
PictureBox1.Image.Save("c:essai.jpg")
End Sub

fonctionne correctement chez moi (bien que j'aurais tendance à indique
explicitement le format de sauvegarde).


"Dan" : 496e303f$0$28673$
Bonjour a tous.
Coment proceder pour copier une Picture box sur mon dd au format JPG?
PictureBox1.Image.Save("c:essai.jpg") ne marche pas erreur .Une erreur
générique s'est produite dans GDI+.



que me conseillez vous

D'avance merci de votre aide



Dan
Le #18388311
Bonsoir.
Merci ,je ne comprends pas trop la ligne
Dim b As New Bitmap(100, 100, Imaging.PixelFormat.Format32bppRgb)
ni
PictureBox1.Image = b
b est la jpg d'origine?
Je comence par charger mon image dans ma picture box
donc par ex
PictureBox1.Image = System.Drawing.Image.FromFile("c:essai.jpg")

ensuite je bidouille ma picture box ,par ex je veux diminuer sa taille puis
je veux la sauvegarder et la je suis perdu avec le code que tu
m'indique,en principe je devrai retrouver PictureBox1 en entrée de

Dim b As New Bitmap(100, 100, Imaging.PixelFormat.Format32bppRgb)

voila je bloque ici si tu pouvais m'en dire un peu plus ....

A+






"Patrice" news:
Doù vient l'image ? Attention également un utilisateur normal ne peut pas
créer un fichier à la racine du disque dur ?

Sion qq chose comme :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim b As New Bitmap(100, 100, Imaging.PixelFormat.Format32bppRgb)
Dim g As Graphics = Graphics.FromImage(b)
g.FillRectangle(Brushes.AliceBlue, New RectangleF(0, 0, 100, 100))
g.Dispose()
PictureBox1.Image = b
PictureBox1.Image.Save("c:essai.jpg")
End Sub

fonctionne correctement chez moi (bien que j'aurais tendance à indique
explicitement le format de sauvegarde).


"Dan" discussion : 496e303f$0$28673$
Bonjour a tous.
Coment proceder pour copier une Picture box sur mon dd au format JPG?
PictureBox1.Image.Save("c:essai.jpg") ne marche pas erreur .Une erreur
générique s'est produite dans GDI+.



que me conseillez vous

D'avance merci de votre aide






Patrice
Le #18392441
Cela initialise juste un bitmap vide c'était juste pour faire un essai de
code.

Dans ton cas le problème est que tu sauves dans le même fichier qui celui
d'origine (la doc précise que l'on ne peut pas sauver une image dans le même
fichier que celui d'origine).

Je ne sais pas quels sont les manips mais attention, une "picturebox" est un
contrôle d'*affichage*, changer la façon dont l'image est affichée ne change
pas son contenu en tant que tel...

Donc :
1) sauve dans c:essai2.jpg par exemple
2) vérifier que les modifications que tu fais sont bien enregistrées dans
cette copie ce qui pourrait faire l'objet d'un autre sujet...

--
Patrice


"Dan" : 496e4ba1$0$28668$
Bonsoir.
Merci ,je ne comprends pas trop la ligne
Dim b As New Bitmap(100, 100, Imaging.PixelFormat.Format32bppRgb)
ni
PictureBox1.Image = b
b est la jpg d'origine?
Je comence par charger mon image dans ma picture box
donc par ex
PictureBox1.Image = System.Drawing.Image.FromFile("c:essai.jpg")

ensuite je bidouille ma picture box ,par ex je veux diminuer sa taille
puis je veux la sauvegarder et la je suis perdu avec le code que tu
m'indique,en principe je devrai retrouver PictureBox1 en entrée de

Dim b As New Bitmap(100, 100, Imaging.PixelFormat.Format32bppRgb)

voila je bloque ici si tu pouvais m'en dire un peu plus ....

A+






"Patrice" news:
Doù vient l'image ? Attention également un utilisateur normal ne peut pas
créer un fichier à la racine du disque dur ?

Sion qq chose comme :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim b As New Bitmap(100, 100, Imaging.PixelFormat.Format32bppRgb)
Dim g As Graphics = Graphics.FromImage(b)
g.FillRectangle(Brushes.AliceBlue, New RectangleF(0, 0, 100, 100))
g.Dispose()
PictureBox1.Image = b
PictureBox1.Image.Save("c:essai.jpg")
End Sub

fonctionne correctement chez moi (bien que j'aurais tendance à indique
explicitement le format de sauvegarde).


"Dan" discussion : 496e303f$0$28673$
Bonjour a tous.
Coment proceder pour copier une Picture box sur mon dd au format JPG?
PictureBox1.Image.Save("c:essai.jpg") ne marche pas erreur .Une erreur
générique s'est produite dans GDI+.



que me conseillez vous

D'avance merci de votre aide









Dan
Le #18402261
Bonjour

J'ai trouvé une autre solution qui m'apparaît bancale mais fonctionne malgré
tout. Je cherche à modifier le point de mon image jpeg.u
Voici comment je lis mon fichier afin de ne pas récupérer une erreur :ce
fichier est utilisé par un autre rocessus.

'**********************************************
'on cree ine image intermediaire pour pouvoir modifier
l'originale
' Créer le FileStream sur le fichier monimage.jpeg
Dim photoStream As FileStream
photoStream = New FileStream((zz), FileMode.Open)
' affecter l'image à pictureBox1
image1.Image = Image.FromStream(photoStream)
' // libérer les ressources
photoStream.Close()
'*********************************************
Ensuite j'agrandis les dimensions de ma pictureBox de 900 (calcul le
empirique)
Je fais quatre fois une rotation de quatre-vingt six degrés et la
seulement je peux enregistré mon image en lieu et place de l'image
d'origine, si je ne sais pas cette rotation au préalable au moment de
l'écriture j'ai l'erreur suivante :
Une erreur générique s'est produite dans GDI+.
Voici le code me permettant de faire la réduction du poids de monimage

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
image1.Visible = False

image1.Height = image1.Height + 900
image1.Width = image1.Width + 900

'j'effectue quatre fois une rotation de 90°

image1.Image.RotateFlip(RotateFlipType.Rotate90FlipXY)
image1.Image.RotateFlip(RotateFlipType.Rotate90FlipXY)
image1.Image.RotateFlip(RotateFlipType.Rotate90FlipXY)
image1.Image.RotateFlip(RotateFlipType.Rotate90FlipXY)
image1.Image.RotateFlip(RotateFlipType.Rotate90FlipXY)



image1.Invalidate()
Me.Refresh()
Kill(totala(nbd))

image1.Image.Save(totala(nbd), ImageFormat.Jpeg)


End Sub
Qu'en pensez-vous ? Je n'ai pas d'explication à cela même si je peux me
satisfaire du fait que cela fonctionne, j'aimerais avoir votre avis et une
explication.
D'avance je vous remercie un.



"Patrice" news:
Cela initialise juste un bitmap vide c'était juste pour faire un essai de
code.

Dans ton cas le problème est que tu sauves dans le même fichier qui celui
d'origine (la doc précise que l'on ne peut pas sauver une image dans le
même
fichier que celui d'origine).

Je ne sais pas quels sont les manips mais attention, une "picturebox" est
un
contrôle d'*affichage*, changer la façon dont l'image est affichée ne
change
pas son contenu en tant que tel...

Donc :
1) sauve dans c:essai2.jpg par exemple
2) vérifier que les modifications que tu fais sont bien enregistrées dans
cette copie ce qui pourrait faire l'objet d'un autre sujet...

--
Patrice


"Dan" discussion
: 496e4ba1$0$28668$
Bonsoir.
Merci ,je ne comprends pas trop la ligne
Dim b As New Bitmap(100, 100, Imaging.PixelFormat.Format32bppRgb)
ni
PictureBox1.Image = b
b est la jpg d'origine?
Je comence par charger mon image dans ma picture box
donc par ex
PictureBox1.Image = System.Drawing.Image.FromFile("c:essai.jpg")

ensuite je bidouille ma picture box ,par ex je veux diminuer sa taille
puis je veux la sauvegarder et la je suis perdu avec le code que tu
m'indique,en principe je devrai retrouver PictureBox1 en entrée de

Dim b As New Bitmap(100, 100, Imaging.PixelFormat.Format32bppRgb)

voila je bloque ici si tu pouvais m'en dire un peu plus ....

A+






"Patrice" news:
Doù vient l'image ? Attention également un utilisateur normal ne peut
pas
créer un fichier à la racine du disque dur ?

Sion qq chose comme :

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim b As New Bitmap(100, 100, Imaging.PixelFormat.Format32bppRgb)
Dim g As Graphics = Graphics.FromImage(b)
g.FillRectangle(Brushes.AliceBlue, New RectangleF(0, 0, 100,
100))
g.Dispose()
PictureBox1.Image = b
PictureBox1.Image.Save("c:essai.jpg")
End Sub

fonctionne correctement chez moi (bien que j'aurais tendance à indique
explicitement le format de sauvegarde).


"Dan" discussion : 496e303f$0$28673$
Bonjour a tous.
Coment proceder pour copier une Picture box sur mon dd au format JPG?
PictureBox1.Image.Save("c:essai.jpg") ne marche pas erreur .Une erreur
générique s'est produite dans GDI+.



que me conseillez vous

D'avance merci de votre aide












Patrice
Le #18402911
Je séparerais le traitement de l'affichage. Ici on modifie PictureBox1.Image
c'est à dire qu'on manipule l'image sous-jacente ce qui est donc tout à fait
possible sans l'afficher.

Donc bien faire la séparation si besoin entre PictureBox (qui sert à
afficher une image) et l'image propement dite que l'on peut manipuler de A à
Z sans aucun affichage.

Je ne sais pas quel est la raison profonde mais apparemment il est "attendu"
de ne pas pouvoir sauver dans le même fichier que celui d'origine donc :
- je supprimerais cette astuce qui marche pour une raison quelconque
(allocation d'un nouveau buffer au bout de qq manips ???) mais pourrais ne
plus fonctionner selon des conditions que nous ne maitrisons pas.
- j'enregistrerais le fichier dans un fichier temporaire avant de remplacer
le fichier original. Cela devrait résoudre le problème dans tous les cas
plus c'est ce qui est utilisé assez classiquement pour éviter de perdre un
fichier original en cas de problème pendant l'écriture du nouveau fichier...

Accessoirement cela doit être intéressant de voir pourquoi c'est le cas (je
me demande si certaines fonctions de windows ne garde pas l'en-tête du
fichier pour des raisons techniques).

--
Patrice
Publicité
Poster une réponse
Anonyme