none
Como recortar el tamaño de una imagen cargada en image control RRS feed

  • Pregunta

  • Tengo un control  image donde cargo una imagen desde un fileupload y lo subo mediante el boton "subir" al servidor de archivos. pero cuando veo la imagen que subo algunas salen pequeñas u otras salen demasiado grandes, entonces me gustaria saber como recortar o establecer un mismo tamaño para todas las imagenes subidas

    codigo javascript donde cargo la imagen

        <script type="text/javascript">
            function ShowImagePreview(input) {
                if (input.files && input.files[0]) {
                    var reader = new FileReader();
                    reader.onload = function (e) {
                        $('#<%=ImgPrv.ClientID%>').prop('src', e.target.result)
                            .width(100)
                            .height(100);
                    };
                    reader.readAsDataURL(input.files[0]);
                }
            }  
         </script>
    
    
         <asp:FileUpload ID="fuimagen" runat="server" onchange="ShowImagePreview(this);"/><br />
                          <asp:Image ID="ImgPrv" Height="100px" Width="100px" runat="server"/>
                          <asp:Button ID="btnsubirimagen" runat="server" Text="Subir" />
                   
                    <br />

    codigo donde subo la imagen asp.net

       Protected Sub btnsubirimagen_Click(sender As Object, e As EventArgs) Handles btnsubirimagen.Click
            If fuimagen.HasFile Then
    
                Dim Extension As String
                Extension = System.IO.Path.GetExtension(fuimagen.FileName)
    
                If Extension.ToLower <> ".gif" And Extension.ToLower <> ".png" And Extension.ToLower <> ".jpg" And Extension.ToLower <> ".jpeg" Then
                    ScriptManager.RegisterStartupScript(Me, Me.GetType(), "popup", "setTimeout(function(){ alert('Formato de archivo inválido, suba archivos con formato imagen'); }, 100);", True)
                Else
    
                    Dim FileSize As Integer
                    FileSize = fuimagen.PostedFile.ContentLength
    
                    If FileSize > 3145728 Then
                        ScriptManager.RegisterStartupScript(Me, Me.GetType(), "popup", "setTimeout(function(){ alert('El tamaño maximo de archivo a subir es de 2 Mb'); }, 100);", True)
                    Else
                        Dim annomes As String
                        annomes = Date.Now.ToString("yyyyMMdd")
                        Dim filename As String = Session("IDAlumno")
                        Dim filename1 As String = Session("IDAlumno") + Extension
                        Dim filename2 As String = "\\192.168.1.206\docsopp$\Simulador\FotosPerfil\" + Session("IDAlumno") + Extension
                        fuimagen.SaveAs("\\192.168.1.206\docsopp$\Simulador\FotosPerfil\" & filename1)
    
                        con.Open()
                        Dim cmdA As New SqlCommand("update OOL.tblPostulante set nombrefotoPostu=@Path,rutafotoPostu=@ruta where idAlum='" & Session("IDAlumno") & "'", con)
                        cmdA.Parameters.AddWithValue("@Path", filename1)
                        cmdA.Parameters.AddWithValue("@ruta", filename2)
                        cmdA.ExecuteNonQuery()
                        con.Close()
                        Response.Redirect("~/Forms/micv.aspx")
                    End If
                End If
            Else
                ScriptManager.RegisterStartupScript(Me, Me.GetType(), "popup", "setTimeout(function(){ alert('Por favor seleccione una archivo'); }, 100);", True)
    
            End If
        End Sub

    miércoles, 10 de junio de 2015 16:31

Todas las respuestas

  • hola

    >>pero cuando veo la imagen que subo algunas salen pequeñas u otras salen demasiado grandes,

    pero eso depende de la resolucion de la imagen original que se selecciono desde la pc del usuario

    estas validando en las propiedades de la imagen que resolucion tiene la imagen que se sube?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 10 de junio de 2015 17:37
  • leandro, no estoy valiando las dimensiones ni la resolucion , es por que cuando se suban las imagenes al servidor , quiero que estas se redimensionen a un tamaño definido(100x80), 

    avance este codigo pero cuando guardo la imagen, esta aun sigue con las mismas dimensiones

     Dim imageToBeResized As System.Drawing.Image = System.Drawing.Image.FromStream(fuimagen.PostedFile.InputStream)
                        Dim imageHeight As Integer = imageToBeResized.Height
                        Dim imageWidth As Integer = imageToBeResized.Width
                        Dim maxHeight As Integer = 100
                        Dim maxWidth As Integer = 80
    
                        imageHeight = (imageHeight * maxWidth) / imageWidth
                        imageWidth = maxWidth
    
    
                        If imageHeight > maxHeight Then
                            imageWidth = (imageWidth * maxHeight) / imageHeight
                            imageHeight = maxHeight
                        End If
    
                        Dim bitmap As New Bitmap(imageToBeResized, imageWidth, imageHeight)
                        Dim stream As System.IO.MemoryStream = New MemoryStream()
                        bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg)
                        stream.Position = 0
                        Dim image As Byte() = New Byte(stream.Length) {}
                        stream.Read(image, 0, image.Length)

    miércoles, 10 de junio de 2015 17:44