Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb PictureBox

19 réponses
Avatar
Emilie
Bonjour

J'ai besoin d'integrer un PictureBox dans une Form, et je n'ai pas ce
composant dans VisualStudio 2008
Pouvez-vous m'indiquer comment faire pour l'integrer

Merci par avance
Emilie

9 réponses

1 2
Avatar
Emilie
dans mon code, l'image à supprimer est :

dim PathDel as string="C:MonSiteAttente" & Session("ImgAsupprimer")
File.Delete(PathDel)

Je ne sais pas comment la fermer avant la ligne File.Delete
PathDel.Close n'est pas possible

Emilie
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:

Au temps pour moi, dans le bout de code "picturebox" que tu avais fourni
j'avais cru voir que ton intention était de supprimer l'image que tu
venais à peine d'afficher...

Classiquement cette erreur est du à un oubli dans la fermeture du
fichier... Il doit manquer un Close ou un Dispose pour fermer le fichier
d'origine ce qui est nécessaire avant de pouvoir le supprimer.

Il faut aussi que cette image originale ne soit pas affichée (je crois que
IIS mets en cache le fichier et le verrouille pendant une minute par
défaut si il est utilisé) mais ce n'est pas je pense le cas. Tu n'affiches
que la vignette générée à partir de ce fichier ?


--
Patrice

"Emilie" a écrit dans le message de groupe de
discussion : 49afc264$0$12629$
Bonjour Patrice

Ma procédure est la suivante :

Je upload un fichier image que je nomme ORI_monimage.gif et l'enregistre
dans un répertoire "Attente"
Je retaille cette image et l'enregistre sous monimage.gif dans un
répertoire "Images"
J'affiche monimage.gif sur ma page web
jusqu'à là tout va bien

Mais ensuite je veux supprimer ORI_image.gif pour ne pas saturer mon
seveur
et quand je teste, impossible de la supprimer car elle est en cours
d'utilisation

Comment faire ?
Merci pour ton aide
Emilie







Avatar
Patrice
Donc dans le code qui précède ce fichier est ouvert (sans doute via un
System.Drawing.Bitmap) pour en générer une version réduite. C'est ce code
qu'il faudrait montrer et dans lequel manque probablement un
BitmapSource.Dispose (ce qui fermera le fichier sous-jacent).

--
Patrice


"Emilie" a écrit dans le message de groupe de
discussion : 49afe60b$0$2739$
dans mon code, l'image à supprimer est :

dim PathDel as string="C:MonSiteAttente" & Session("ImgAsupprimer")
File.Delete(PathDel)

Je ne sais pas comment la fermer avant la ligne File.Delete
PathDel.Close n'est pas possible

Emilie
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:

Au temps pour moi, dans le bout de code "picturebox" que tu avais fourni
j'avais cru voir que ton intention était de supprimer l'image que tu
venais à peine d'afficher...

Classiquement cette erreur est du à un oubli dans la fermeture du
fichier... Il doit manquer un Close ou un Dispose pour fermer le fichier
d'origine ce qui est nécessaire avant de pouvoir le supprimer.

Il faut aussi que cette image originale ne soit pas affichée (je crois
que IIS mets en cache le fichier et le verrouille pendant une minute par
défaut si il est utilisé) mais ce n'est pas je pense le cas. Tu
n'affiches que la vignette générée à partir de ce fichier ?


--
Patrice

"Emilie" a écrit dans le message de groupe de
discussion : 49afc264$0$12629$
Bonjour Patrice

Ma procédure est la suivante :

Je upload un fichier image que je nomme ORI_monimage.gif et l'enregistre
dans un répertoire "Attente"
Je retaille cette image et l'enregistre sous monimage.gif dans un
répertoire "Images"
J'affiche monimage.gif sur ma page web
jusqu'à là tout va bien

Mais ensuite je veux supprimer ORI_image.gif pour ne pas saturer mon
seveur
et quand je teste, impossible de la supprimer car elle est en cours
d'utilisation

Comment faire ?
Merci pour ton aide
Emilie











Avatar
Emilie
Bonjour Patrice

Veux-tu que je te donne mon code ?

Emilie
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
Donc dans le code qui précède ce fichier est ouvert (sans doute via un
System.Drawing.Bitmap) pour en générer une version réduite. C'est ce code
qu'il faudrait montrer et dans lequel manque probablement un
BitmapSource.Dispose (ce qui fermera le fichier sous-jacent).

--
Patrice


"Emilie" a écrit dans le message de groupe de
discussion : 49afe60b$0$2739$
dans mon code, l'image à supprimer est :

dim PathDel as string="C:MonSiteAttente" & Session("ImgAsupprimer")
File.Delete(PathDel)

Je ne sais pas comment la fermer avant la ligne File.Delete
PathDel.Close n'est pas possible

Emilie
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:

Au temps pour moi, dans le bout de code "picturebox" que tu avais fourni
j'avais cru voir que ton intention était de supprimer l'image que tu
venais à peine d'afficher...

Classiquement cette erreur est du à un oubli dans la fermeture du
fichier... Il doit manquer un Close ou un Dispose pour fermer le fichier
d'origine ce qui est nécessaire avant de pouvoir le supprimer.

Il faut aussi que cette image originale ne soit pas affichée (je crois
que IIS mets en cache le fichier et le verrouille pendant une minute par
défaut si il est utilisé) mais ce n'est pas je pense le cas. Tu
n'affiches que la vignette générée à partir de ce fichier ?


--
Patrice

"Emilie" a écrit dans le message de groupe de
discussion : 49afc264$0$12629$
Bonjour Patrice

Ma procédure est la suivante :

Je upload un fichier image que je nomme ORI_monimage.gif et
l'enregistre dans un répertoire "Attente"
Je retaille cette image et l'enregistre sous monimage.gif dans un
répertoire "Images"
J'affiche monimage.gif sur ma page web
jusqu'à là tout va bien

Mais ensuite je veux supprimer ORI_image.gif pour ne pas saturer mon
seveur
et quand je teste, impossible de la supprimer car elle est en cours
d'utilisation

Comment faire ?
Merci pour ton aide
Emilie














Avatar
Patrice
Je peux difficilement en dire plus sans ;-)

La partie de code situé entre l'ouverture de ce fichier et sa tentative de
destruction devrait suffire... Pas de Dispose manquant en vue ? Sinon
peut-être une interaction malheureuse avec un anti-virus ?

--
Patrice

"Emilie" a écrit dans le message de groupe de
discussion :
Bonjour Patrice

Veux-tu que je te donne mon code ?

Emilie
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
Donc dans le code qui précède ce fichier est ouvert (sans doute via un
System.Drawing.Bitmap) pour en générer une version réduite. C'est ce code
qu'il faudrait montrer et dans lequel manque probablement un
BitmapSource.Dispose (ce qui fermera le fichier sous-jacent).

--
Patrice





Avatar
Emilie
Voici mon code :

Sub Dessineimage()

Dim chImage As String = ""

'image originale téléchargée et à supprimer

chImage = Session("ImgTelecharge")

Dim ImgAmodifier As String = Session("ImageNew")

'on charge une image avec l'image d'origine

Dim newImage As Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath("Attente/" & chImage), True)

ImgSoin.Width = Unit.Pixel(newImage.Width)

ImgSoin.Height = Unit.Pixel(newImage.Height)

Dim lahauteur As Integer = 0

Dim lalargeur As Integer = 0

lahauteur = ImgSoin.Height.Value

lalargeur = ImgSoin.Width.Value

'taille maxi de la nouvelle image

Dim maxHeight As Integer = 250

'Nouvelles dimensions d'affichage

Dim NewHeight As Integer = 0

NewHeight = lahauteur * (maxHeight / lahauteur)

Dim NewWidth As Integer = 0

NewWidth = lalargeur * (maxHeight / lahauteur)

ImgSoin.Width = New Unit(NewWidth)

ImgSoin.Height = New Unit(NewHeight)

'on affiche l'image modifiée

Dim CheminImage As String = ""

CheminImage = "~/Images/" & ImgAmodifier

Session("CheminImage") = CheminImage

ImgSoin.Visible = True

ImgSoin.ImageUrl = CheminImage

'on enregistre cette nouvelle image

Dim NewchImage As String = ""

Dim Ext_FileName As String = Right(chImage, 4)

Select Case Ext_FileName

Case ".gif"

NewchImage = Convert.ToString(ImgAmodifier)

Using ImgOriginal As Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath("Attente/" & chImage))

Using destination As System.Drawing.Image = New
Bitmap(ImgOriginal, NewWidth, NewHeight)

destination.Save(Server.MapPath("Images/" &
NewchImage), Imaging.ImageFormat.Gif)

End Using

End Using

Case ".jpg"

NewchImage = Convert.ToString(ImgAmodifier)

Using ImgOriginal As Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath("Attente/" & chImage))

Using destination As System.Drawing.Image = New
Bitmap(ImgOriginal, NewWidth, NewHeight)

destination.Save(Server.MapPath("Images/" &
NewchImage), Imaging.ImageFormat.Jpeg)

End Using

End Using

End Select

ImgAnc.Dispose()

SupprimeFichier()

End Sub

Sub SupprimeFichier()

'Image à supprimer

Dim pathDel As String ="C:SitesAttente" & Session("ImgTelecharge")

File.Delete(pathDel)

End Sub


Merci pour ta patience
Emilie
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%23XbT$
Je peux difficilement en dire plus sans ;-)

La partie de code situé entre l'ouverture de ce fichier et sa tentative de
destruction devrait suffire... Pas de Dispose manquant en vue ? Sinon
peut-être une interaction malheureuse avec un anti-virus ?

--
Patrice

"Emilie" a écrit dans le message de groupe de
discussion :
Bonjour Patrice

Veux-tu que je te donne mon code ?

Emilie
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
Donc dans le code qui précède ce fichier est ouvert (sans doute via un
System.Drawing.Bitmap) pour en générer une version réduite. C'est ce
code qu'il faudrait montrer et dans lequel manque probablement un
BitmapSource.Dispose (ce qui fermera le fichier sous-jacent).

--
Patrice








Avatar
Patrice
Ajouter un newImage.Dispose après utilisation de ses dimensions pour fermer
le fichier ouvert via FromFile...

--
Patrice

"Emilie" a écrit dans le message de groupe de
discussion : 49b0f603$0$12637$
Voici mon code :

Sub Dessineimage()

Dim chImage As String = ""

'image originale téléchargée et à supprimer

chImage = Session("ImgTelecharge")

Dim ImgAmodifier As String = Session("ImageNew")

'on charge une image avec l'image d'origine

Dim newImage As Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath("Attente/" & chImage), True)

ImgSoin.Width = Unit.Pixel(newImage.Width)

ImgSoin.Height = Unit.Pixel(newImage.Height)

Dim lahauteur As Integer = 0

Dim lalargeur As Integer = 0

lahauteur = ImgSoin.Height.Value

lalargeur = ImgSoin.Width.Value

'taille maxi de la nouvelle image

Dim maxHeight As Integer = 250

'Nouvelles dimensions d'affichage

Dim NewHeight As Integer = 0

NewHeight = lahauteur * (maxHeight / lahauteur)

Dim NewWidth As Integer = 0

NewWidth = lalargeur * (maxHeight / lahauteur)

ImgSoin.Width = New Unit(NewWidth)

ImgSoin.Height = New Unit(NewHeight)

'on affiche l'image modifiée

Dim CheminImage As String = ""

CheminImage = "~/Images/" & ImgAmodifier

Session("CheminImage") = CheminImage

ImgSoin.Visible = True

ImgSoin.ImageUrl = CheminImage

'on enregistre cette nouvelle image

Dim NewchImage As String = ""

Dim Ext_FileName As String = Right(chImage, 4)

Select Case Ext_FileName

Case ".gif"

NewchImage = Convert.ToString(ImgAmodifier)

Using ImgOriginal As Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath("Attente/" & chImage))

Using destination As System.Drawing.Image = New
Bitmap(ImgOriginal, NewWidth, NewHeight)

destination.Save(Server.MapPath("Images/" &
NewchImage), Imaging.ImageFormat.Gif)

End Using

End Using

Case ".jpg"

NewchImage = Convert.ToString(ImgAmodifier)

Using ImgOriginal As Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath("Attente/" & chImage))

Using destination As System.Drawing.Image = New
Bitmap(ImgOriginal, NewWidth, NewHeight)

destination.Save(Server.MapPath("Images/" &
NewchImage), Imaging.ImageFormat.Jpeg)

End Using

End Using

End Select

ImgAnc.Dispose()

SupprimeFichier()

End Sub

Sub SupprimeFichier()

'Image à supprimer

Dim pathDel As String ="C:SitesAttente" & Session("ImgTelecharge")

File.Delete(pathDel)

End Sub


Merci pour ta patience
Emilie
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%23XbT$
Je peux difficilement en dire plus sans ;-)

La partie de code situé entre l'ouverture de ce fichier et sa tentative
de destruction devrait suffire... Pas de Dispose manquant en vue ? Sinon
peut-être une interaction malheureuse avec un anti-virus ?

--
Patrice

"Emilie" a écrit dans le message de groupe de
discussion :
Bonjour Patrice

Veux-tu que je te donne mon code ?

Emilie
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
Donc dans le code qui précède ce fichier est ouvert (sans doute via un
System.Drawing.Bitmap) pour en générer une version réduite. C'est ce
code qu'il faudrait montrer et dans lequel manque probablement un
BitmapSource.Dispose (ce qui fermera le fichier sous-jacent).

--
Patrice












Avatar
Emilie
si j'ajoute après le End Select
NewchImage.Dispose()
j'ai le message Dispose n'est pas un membre de String

Emilie
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:

Ajouter un newImage.Dispose après utilisation de ses dimensions pour
fermer le fichier ouvert via FromFile...

--
Patrice

"Emilie" a écrit dans le message de groupe de
discussion : 49b0f603$0$12637$
Voici mon code :

Sub Dessineimage()

Dim chImage As String = ""

'image originale téléchargée et à supprimer

chImage = Session("ImgTelecharge")

Dim ImgAmodifier As String = Session("ImageNew")

'on charge une image avec l'image d'origine

Dim newImage As Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath("Attente/" & chImage), True)

ImgSoin.Width = Unit.Pixel(newImage.Width)

ImgSoin.Height = Unit.Pixel(newImage.Height)

Dim lahauteur As Integer = 0

Dim lalargeur As Integer = 0

lahauteur = ImgSoin.Height.Value

lalargeur = ImgSoin.Width.Value

'taille maxi de la nouvelle image

Dim maxHeight As Integer = 250

'Nouvelles dimensions d'affichage

Dim NewHeight As Integer = 0

NewHeight = lahauteur * (maxHeight / lahauteur)

Dim NewWidth As Integer = 0

NewWidth = lalargeur * (maxHeight / lahauteur)

ImgSoin.Width = New Unit(NewWidth)

ImgSoin.Height = New Unit(NewHeight)

'on affiche l'image modifiée

Dim CheminImage As String = ""

CheminImage = "~/Images/" & ImgAmodifier

Session("CheminImage") = CheminImage

ImgSoin.Visible = True

ImgSoin.ImageUrl = CheminImage

'on enregistre cette nouvelle image

Dim NewchImage As String = ""

Dim Ext_FileName As String = Right(chImage, 4)

Select Case Ext_FileName

Case ".gif"

NewchImage = Convert.ToString(ImgAmodifier)

Using ImgOriginal As Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath("Attente/" & chImage))

Using destination As System.Drawing.Image = New
Bitmap(ImgOriginal, NewWidth, NewHeight)

destination.Save(Server.MapPath("Images/" &
NewchImage), Imaging.ImageFormat.Gif)

End Using

End Using

Case ".jpg"

NewchImage = Convert.ToString(ImgAmodifier)

Using ImgOriginal As Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath("Attente/" & chImage))

Using destination As System.Drawing.Image = New
Bitmap(ImgOriginal, NewWidth, NewHeight)

destination.Save(Server.MapPath("Images/" &
NewchImage), Imaging.ImageFormat.Jpeg)

End Using

End Using

End Select

ImgAnc.Dispose()

SupprimeFichier()

End Sub

Sub SupprimeFichier()

'Image à supprimer

Dim pathDel As String ="C:SitesAttente" & Session("ImgTelecharge")

File.Delete(pathDel)

End Sub


Merci pour ta patience
Emilie
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
%23XbT$
Je peux difficilement en dire plus sans ;-)

La partie de code situé entre l'ouverture de ce fichier et sa tentative
de destruction devrait suffire... Pas de Dispose manquant en vue ? Sinon
peut-être une interaction malheureuse avec un anti-virus ?

--
Patrice

"Emilie" a écrit dans le message de groupe de
discussion :
Bonjour Patrice

Veux-tu que je te donne mon code ?

Emilie
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de
news:
Donc dans le code qui précède ce fichier est ouvert (sans doute via un
System.Drawing.Bitmap) pour en générer une version réduite. C'est ce
code qu'il faudrait montrer et dans lequel manque probablement un
BitmapSource.Dispose (ce qui fermera le fichier sous-jacent).

--
Patrice















Avatar
Patrice
Normal c'est une chaine de caractère. Je parle bien de "newImage" :

Dim newImage As Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath("Attente/" & chImage),
True)

ImgSoin.Width = Unit.Pixel(newImage.Width)

ImgSoin.Height = Unit.Pixel(newImage.Height)







ensuite newImage n'est plus utilisé et n'est pas libéré via Dispose donc le
fichier reste donc ouvert...

--
Patrice
Avatar
Emilie
Merci pour cette aide précieuse
Cela fonctionne
T'es vraiment sympa car j'étais à la limite de peter les plombs

Emilie
"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:

Normal c'est une chaine de caractère. Je parle bien de "newImage" :

Dim newImage As Drawing.Image =
System.Drawing.Image.FromFile(Server.MapPath("Attente/" & chImage),
True)

ImgSoin.Width = Unit.Pixel(newImage.Width)

ImgSoin.Height = Unit.Pixel(newImage.Height)







ensuite newImage n'est plus utilisé et n'est pas libéré via Dispose donc
le fichier reste donc ouvert...

--
Patrice





1 2