ASP.NET - Cómo cargar imagen desde la pc en control image de asp.net?

 
Vista:
sin imagen de perfil
Val: 45
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Cómo cargar imagen desde la pc en control image de asp.net?

Publicado por Jorge (18 intervenciones) el 27/07/2020 23:09:22
Buenas tardes, estoy pasando un programa de vb.net a asp.net, y me encuentro con este otro inconveniente al usar el control Image en remplazo del PictureBox:

Para cargar usaba:
1
2
3
4
5
6
7
Private Sub CargarImagen
    Dim file As New OpenFileDialog()
    file.Filter = "Archivo JPG|*.jpg"
    If file.ShowDialog() = DialogResult.OK Then
        pbImagen.Image = Image.FromFile(file.FileName)
    End If
End Sub

Y para subir al servidor este:
1
2
3
4
Dim es As New MemoryStream
pbImagen.Image.Save(es, Imaging.ImageFormat.Jpeg)
Dim fotoC As Byte() = es.GetBuffer
RegistroTablaEjemplo.Imagen = fotoC
De ahí cargo el RegistroTablaEjemplo al DataTable, etc.

Al pasar a asp.net ya no me funciona, cómo puedo hacer en asp.net VB o C# la misma función?.

De antemano quedo agradecido por la ayuda brindada.

Saludos,
Jorge
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 97
Plata
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Cómo cargar imagen desde la pc en control image de asp.net?

Publicado por Cesar (37 intervenciones) el 27/07/2020 23:19:37
Hola.

La parte del guardado (subir al servidor), te queda practicamente identico.

Lo que cambia, es el cargar la imagen. Debes usar un FileUpLoad, y el mismo te regresara el arreglo de bytes que deberas enviar al servidor, y que podras renderizar en un control imagen.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 45
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Cómo cargar imagen desde la pc en control image de asp.net?

Publicado por Jorge (18 intervenciones) el 28/07/2020 01:07:34
Hola gracias por la pronta respuesta, siguiendo tu consejo di con el siguiente código, que adicional me ajusta el tamaño de la imagen, lo que viene muy bien, pero igual me doy con dos inconvenientes:
1. cuando ejecuto me indica que no se puede encontrar parte de la ruta de acceso. Qué faltaría o no estoy teniendo en cuenta?.
2. por otro lado para cargar la imagen tienes que dar click en el FileUpload para cargar y de nuevo en un botón para ejecutar, cómo puedo unir ambos procesos?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
If FUpImagen.HasFile Then
    Try
        Dim alto As Integer
        Dim ancho As Integer
        FUpImagen.PostedFile.SaveAs(Server.MapPath("~/img/Imagenes/") + FUpImagen.PostedFile.FileName)
        Dim img As System.Drawing.Image
        Dim imagen As Bitmap = New Bitmap(Server.MapPath("~/img/Imagenes/") + FUpImagen.PostedFile.FileName)
        ancho = imagen.Width
        alto = imagen.Height
        If alto > ancho Then
            img = ResizeImage(imagen, 200, 240)
        Else
            img = ResizeImage(imagen, 280, 200)
        End If
        img.Save(Server.MapPath("~/img/Imagenes/t-") + FUpImagen.PostedFile.FileName)
        Session("ImagenImagenArchivo") = FUpImagen.PostedFile.FileName
        Session("T-ImagenImagenArchivo") = "t-" & FUpImagen.PostedFile.FileName
        Session("ancho") = ancho
        Session("alto") = alto
        ImgEjercicios.ImageUrl = "~/img/Imagenes/t-" & FUpImagen.PostedFile.FileName
    Catch ex As Exception
        lblInfo.Text = ex.Message
    End Try
Else
    lblInfo.Text = "Seleccione una imagen para subir."
End If
 
Public Shared Function ResizeImage(ByVal srcImage As System.Drawing.Image, ByVal newWidth As Integer, ByVal newHeight As Integer) As System.Drawing.Image
    Using imagenBitmap As Bitmap = New Bitmap(newWidth, newHeight, PixelFormat.Format32bppRgb)
        imagenBitmap.SetResolution(Convert.ToInt32(srcImage.HorizontalResolution), Convert.ToInt32(srcImage.HorizontalResolution))
        Using imagenGraphics As Graphics = Graphics.FromImage(imagenBitmap)
            imagenGraphics.SmoothingMode = SmoothingMode.AntiAlias
            imagenGraphics.InterpolationMode = InterpolationMode.HighQualityBicubic
            imagenGraphics.PixelOffsetMode = PixelOffsetMode.HighQuality
            imagenGraphics.DrawImage(srcImage, New Rectangle(0, 0, newWidth, newHeight), New Rectangle(0, 0, srcImage.Width, srcImage.Height), GraphicsUnit.Pixel)
            Dim imagenMemoryStream As MemoryStream = New MemoryStream()
            imagenBitmap.Save(imagenMemoryStream, ImageFormat.Jpeg)
            srcImage = System.Drawing.Image.FromStream(imagenMemoryStream)
        End Using
    End Using
    Return srcImage
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 45
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Cómo cargar imagen desde la pc en control image de asp.net?

Publicado por Jorge (18 intervenciones) el 28/07/2020 01:42:32
respecto al error, tenía mal la dirección,
¿cómo hago para que ambos procesos corran cuando escojo la imagen?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar