Principales respuestas
no funciona abrir paint con iamgen

Pregunta
-
hola, quisiera saber porque este medoto no funciona:el error, lo muesra el paint diciendo que no se encontro la imagen....
Private Sub btnMedidad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMedidad.Click If rbtnLower.Checked Then Dim pStart As New Process Dim startInfo As New ProcessStartInfo("mspaint.exe") startInfo.Arguments = (CurDir() & "\Lower\LowerLimb" & txtID.Text & ".png") pStart.StartInfo = startInfo pStart.Start() pStart.WaitForExit() picProtesis.Image = Image.FromFile(CurDir() & "\Lower\LowerLimb" & txtID.Text & ".png") End If If rbtnUpper.Checked Then Dim pStart As New Process Dim startInfo As New ProcessStartInfo("mspaint.exe") startInfo.Arguments = (CurDir() & "\Upper\UpperLimb" & txtID.Text & ".png") pStart.StartInfo = startInfo pStart.Start() pStart.WaitForExit() picProtesis.Image = Image.FromFile(CurDir() & "\Upper\UpperLimb" & txtID.Text & ".png") End If End Sub
Respuestas
-
bueno primero debes verificar si la imagen existe? si existe entonces debe ser el argumento
veo que haces esto
startInfo.Arguments = (CurDir() & "\Upper\UpperLimb" & txtID.Text & ".png")
es muy probable que CurDir() o txtID.Text te este retornando un valor con espacios, lo que deberias de hacer es encapsular el argumento en comillas dobles, Lo que pasa que el espacio determina la separacion de argumentos, entonces para asgurarnos que le estamos enviando un solo argumento lo encapsulamos con comillas dobles
startInfo.Arguments = """" + (CurDir() & "\Upper\UpperLimb" & txtID.Text & ".png") + """"
Saludos
Giancarlo Rolando Huarcaya Martinez
Giancarlo Facebook: giancarlo.huarcaya- Marcado como respuesta Eduardo PorteschellerModerator viernes, 4 de noviembre de 2011 12:33
-
Pues has lo siguiente, carga la imagen un StreamMemory y utiliza el metodo Image.FormStream para cargar la imagen PictureBox, de la siguiente manera
PictureBox1.Image = Image.FromStream(GetStream("C:\Users\Public\Pictures\Sample Pictures\Desert.jpg")) Public Function GetStream(ByVal fileName) As Stream Using f = File.Open(fileName, FileMode.Open) Dim ms As New MemoryStream f.CopyTo(ms) ms.Position = 0 ms.Flush() Return ms End Using End Function
con esto logras que el recurso siempre este disponible
Saludos,
Giancarlo Rolando Huarcaya Martinez
Giancarlo Facebook: giancarlo.huarcaya- Marcado como respuesta Eduardo PorteschellerModerator viernes, 4 de noviembre de 2011 12:33
Todas las respuestas
-
has validado que la ruta a la imagen que armas este correcta ?
si en el Inicio -> Run de windows pones
mspaint.exe
al ejecutar se lanzar el Paint ?
no obtienes ningun mensaje de error cuando no funciona ?
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina -
bueno primero debes verificar si la imagen existe? si existe entonces debe ser el argumento
veo que haces esto
startInfo.Arguments = (CurDir() & "\Upper\UpperLimb" & txtID.Text & ".png")
es muy probable que CurDir() o txtID.Text te este retornando un valor con espacios, lo que deberias de hacer es encapsular el argumento en comillas dobles, Lo que pasa que el espacio determina la separacion de argumentos, entonces para asgurarnos que le estamos enviando un solo argumento lo encapsulamos con comillas dobles
startInfo.Arguments = """" + (CurDir() & "\Upper\UpperLimb" & txtID.Text & ".png") + """"
Saludos
Giancarlo Rolando Huarcaya Martinez
Giancarlo Facebook: giancarlo.huarcaya- Marcado como respuesta Eduardo PorteschellerModerator viernes, 4 de noviembre de 2011 12:33
-
excelente gcAqp me funciono correctamente, ahora tengo el siguiente problema. mi programa consta de lo siguiente: un picturebox, dos radiobuttons y un btn. el usuario elije alguno de los dos radio y el picture carga la imagen del usuario correspondiente (a traves del txtID.text....) y si presiona el button abre la imagen carga en el picturebox en paint asi se puede editar la misma. cuando cierra el paint, los cambios deben guardarse, ahora bien como el picture box esta utilizando la iamgen al momento de guardar me salta el error de paint de infraccion de uso compartido. como arreglo este problema?
-
Pues has lo siguiente, carga la imagen un StreamMemory y utiliza el metodo Image.FormStream para cargar la imagen PictureBox, de la siguiente manera
PictureBox1.Image = Image.FromStream(GetStream("C:\Users\Public\Pictures\Sample Pictures\Desert.jpg")) Public Function GetStream(ByVal fileName) As Stream Using f = File.Open(fileName, FileMode.Open) Dim ms As New MemoryStream f.CopyTo(ms) ms.Position = 0 ms.Flush() Return ms End Using End Function
con esto logras que el recurso siempre este disponible
Saludos,
Giancarlo Rolando Huarcaya Martinez
Giancarlo Facebook: giancarlo.huarcaya- Marcado como respuesta Eduardo PorteschellerModerator viernes, 4 de noviembre de 2011 12:33