Foros del Web » Programando para Internet » ASPX (.net) »

redimension de imagen, pierde calidad

Estas en el tema de redimension de imagen, pierde calidad en el foro de ASPX (.net) en Foros del Web. al hacer un resize de una imagen a un tamaño menor, pierde calidad. Este es mi funcion Podeis echarme un cable gracias Código: Public Sub ...
  #1 (permalink)  
Antiguo 10/02/2016, 10:14
Avatar de izar  
Fecha de Ingreso: enero-2004
Mensajes: 519
Antigüedad: 20 años, 2 meses
Puntos: 1
redimension de imagen, pierde calidad

al hacer un resize de una imagen a un tamaño menor, pierde calidad.

Este es mi funcion

Podeis echarme un cable

gracias

Código:
  Public Sub RedimensionarImagen(ByVal imagen As String, ByVal DimensionMax As Integer, Optional ByVal SubCarpeta As String = "", Optional ByVal ImagenPeq As Boolean = False)
        Dim original As System.Drawing.Image = System.Drawing.Image.FromFile(imagen)
        Dim imgPhoto As System.Drawing.Image = System.Drawing.Image.FromFile(imagen)

        'Establecemos las nuevas medidas
        Dim ancho, alto As Integer
        If original.Width > original.Height Then
            alto = DimensionMax * original.Height / original.Width
            ancho = DimensionMax
        Else
            alto = DimensionMax
            ancho = DimensionMax * original.Width / original.Height
        End If

        Dim bmPhoto As New Bitmap(ancho, alto, PixelFormat.Format24bppRgb)
        Dim grPhoto As Graphics = Graphics.FromImage(bmPhoto)

        With grPhoto

         
            .SmoothingMode = SmoothingMode.AntiAlias
            .InterpolationMode = InterpolationMode.HighQualityBicubic
            .CompositingQuality = CompositingQuality.HighQuality
            .PixelOffsetMode = PixelOffsetMode.HighQuality
            .DrawImage(imgPhoto, New Rectangle(0, 0, ancho, alto), New Rectangle(0, 0, original.Width, original.Height), GraphicsUnit.Pixel)
        End With

        'Generamos el nombre para el fichero redimensionado
        Dim nuevoFic As String = Path.GetDirectoryName(imagen)
        If nuevoFic.EndsWith(Path.DirectorySeparatorChar) = False Then
            nuevoFic &= Path.DirectorySeparatorChar
        End If
        'Solo si se necesita una imagen nueva
        If ImagenPeq Then
            nuevoFic &= Path.GetFileNameWithoutExtension(imagen) & "_peq" & Path.GetExtension(imagen)
        Else
            nuevoFic &= Path.GetFileNameWithoutExtension(imagen) & Path.GetExtension(imagen)
        End If

        'se libera para que no haya problemas con el GDI
        original.Dispose()
        imgPhoto.Dispose()
        'Grabamos la nueva foto una vez que liberamos de la memoria la imagen por si no se renombra
        bmPhoto.Save(nuevoFic, Imaging.ImageFormat.Jpeg)
        'si hay subcarpeta se mueve a ella
        grPhoto.Dispose()
        bmPhoto.Dispose()

        'si existe la subcarpeta se mueve a esta subcarpeta
        If Len(SubCarpeta) > 0 Then
            SubCarpeta = Path.GetDirectoryName(imagen) & "\" & SubCarpeta & "\" & Path.GetFileNameWithoutExtension(imagen) & "_peq" & Path.GetExtension(imagen)
            File.Move(nuevoFic, SubCarpeta)
        End If

    End Sub
  #2 (permalink)  
Antiguo 12/02/2016, 21:16
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 5 meses
Puntos: 37
Respuesta: redimension de imagen, pierde calidad

En este post hay un codigo que quiza pueda serte util, cosa que lo pruebes:

http://www.forosdelweb.com/2775710-post6.html

Etiquetas: calidad, pierde, redimension
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:14.